home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / edit / e34.zip / E!.DOC next >
Text File  |  1989-01-13  |  131KB  |  3,776 lines

  1.                                     E!.DOC
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.                            ┌──────────────────────┐
  18.                            │       " E! "         │
  19.                            ╞══════════════════════╡
  20.                            │Multifiles Text Editor│
  21.                            ╞══════════════════════╡
  22.                            │     User's Guide     │
  23.                            │                      │
  24.                            │     Version 3.4      │
  25.                            └──────────────────────┘
  26.  
  27.                  (c) Copyright Patrick Philippot - 1988,1989
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.                                 E!.DOC page 1
  65.                                     E!.DOC
  66.  
  67.                               ┌─────────────────┐
  68.                               │TABLE OF CONTENTS│
  69.                               └─────────────────┘
  70.  
  71.    A. INTRODUCTION ..................................... page 3
  72.    B. INSTALLATION ..................................... page 5
  73.        notes about DOS 3.3 ............................. page 6
  74.    C. GETTING STARTED .................................. page 7
  75.        global file search .............................. page 7
  76.        non text files .................................. page 8
  77.        automatic positionning .......................... page 8
  78.    D. THE "E!" SCREEN .................................. page 10
  79.        status .......................................... page 10
  80.        text ............................................ page 10
  81.        command ......................................... page 10
  82.        help ............................................ page 11
  83.        file names ...................................... page 11
  84.    E. MAIN FUNCTION KEYS ............................... page 12
  85.        key oriented help ............................... page 12
  86.    F. MOVING THE CURSOR ................................ page 14
  87.    G. EDITING FUNCTIONS ................................ page 17
  88.        undo ............................................ page 21
  89.    H. BLOCKS MANIPULATION .............................. page 23
  90.        marking / unmarking blocks ...................... page 23
  91.        deleting a block ................................ page 24
  92.        copying a block.................................. page 24
  93.        moving a block .................................. page 24
  94.        overlaying a block .............................. page 24
  95.        adjusting a block ............................... page 24
  96.        special functions ............................... page 25
  97.    I. TEXT FORMATTING .................................. page 27
  98.    J. DRAWING .......................................... page 29
  99.    K. COMMANDS ......................................... page 30
  100.        about E! commands ............................... page 30
  101.        commands reference .............................. page 31
  102.        search / replace commands ....................... page 40
  103.    L. MACROS ........................................... page 43
  104.    M. PROFILES ......................................... page 46
  105.        typematic ....................................... page 46
  106.    N. PROGRAMMING SUPPORT .............................. page 52
  107.    O. E! IS A SHAREWARE ................................ page 54
  108.  
  109.       APPENDIX 1 ....................................... page 55
  110.       APPENDIX 2 ....................................... page 56
  111.       APPENDIX 3 ....................................... page 59
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.                                 E!.DOC page 2
  129.                                     E!.DOC
  130.  
  131.                            ┌──────────────────────┐
  132.                            │       " E! "         │
  133.                            ╞══════════════════════╡
  134.                            │Multifiles Text Editor│
  135.                            ╞══════════════════════╡
  136.                            │     User's Guide     │
  137.                            │                      │
  138.                            │     Version 3.4      │
  139.                            └──────────────────────┘
  140.  
  141.  
  142.                 (c) Copyright Patrick Philippot - 1988,1989,1990
  143.  
  144.  
  145.  
  146.  A. INTRODUCTION
  147.  _______________
  148.  
  149.            E!  is  a  powerful  full-screen text editor. Its implementation
  150.       has  been  driven  by  three  keywords : quick, simple and efficient.
  151.       It  will  allow  you  to edit as many files as your system memory can
  152.       hold  simultaneously.  A  "split screen" mode is available to see two
  153.       different  parts  of  a file on the same screen. Although E! is not a
  154.       word  processor  it  offers  some functions you will rarely find in a
  155.       text  editor.  His  very  versatile  interface  with  DOS  makes it a
  156.       valuable   tool   for   programmers  but  it  will  be  used  by  non
  157.       programmers as "every day's" text editor.
  158.  
  159.            E!  is  not a word processor. It edits and saves ASCII files and
  160.       does  not  include  any  control character in the text flow except if
  161.       you  insert  them  yourself.  It does not support any printer but you
  162.       have  the  opportunity to add printer control characters in your text
  163.       very easily.
  164.  
  165.            E!  is a professional level tool. It is a high configurable text
  166.       editor  and  you  will  tailor  it  to  exactly suit your needs using
  167.       PROFILES and MACROS.
  168.  
  169.            E!  supports  EGA 43 lines mode, VGA 50 lines mode and a special
  170.       35  lines mode which is more readable than the previous ones. The IBM
  171.       101T enhanced keyboard is also fully supported.
  172.  
  173.            The  number  of  E!  built-in  functions  is  VERY  high.  These
  174.       functions  can  be  grouped  together  to build macros. E! macros are
  175.       saved  in  macro  files  and  you  can  use  them  at any time during
  176.       editing. You can also assign a macro to any key.
  177.  
  178.            E!  configuration  can  be  changed AT ANY TIME by loading a new
  179.       PROFILE.  So  you  can have PROFILES adapted for programming support,
  180.       PROFILES adapted to program documentation editing, etc...
  181.  
  182.            When  loading  a  file  E! automatically expands tabs if this is
  183.       specified   in  the  main  PROFILE.  The  same  option  automatically
  184.       compresses blanks to tabs when saving the edited file. This allows E!
  185.       internals  to  work  only with blanks. This is very important for the
  186.       block  manipulations  functions  which  are  one of the most powerful
  187.       features of E!.
  188.  
  189.            E!  version  3.2 offers programming support. You can compile any
  190.       source  file  from  within  the  editor without leaving it. Compiling
  191.  
  192.                                 E!.DOC page 3
  193.                                     E!.DOC
  194.  
  195.       errors  are  retrieved  from  the  compiler  and  E!  will then point
  196.       directly to the error in the source text. Compiler error messages are
  197.       displayed  just  like  in  an integrated environment. E! supports ANY
  198.       compiler  issuing  standard  error  messages.  Borland  and Microsoft
  199.       compilers (trademarks) have been successfully tested from within E!.
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.                                 E!.DOC page 4
  257.                                     E!.DOC
  258.  
  259. B. INSTALLATION
  260. _______________
  261.  
  262.  
  263.            20 files are provided on the E! diskette :
  264.  
  265.               E!.EXE       the editing program
  266.               E!.HLP       the help file
  267.               E!KEY.HLP    the key oriented help file
  268.               E!.PRO       the sample PROFILE
  269.               E!.MSG       the messages file
  270.               READ.ME      the last news
  271.  
  272.               E!FNT35.EGA  special 35 lines mode 8x10 font
  273.               E!FNT352.EGA another 35 lines font
  274.               E!FNT251.EGA two 25 lines mode EGA replacement fonts
  275.               E!FNT252.EGA
  276.               E!FNT251.VGA two 25 lines mode VGA replacement fonts
  277.               E!FNT252.VGA
  278.               E!FONT.EXE   the font loader
  279.               E!FONT.DOC   the E!FONT documentation
  280.               EDITFONT.EXE the font editor
  281.               EDITFONT.DOC the EDITFONT documentation
  282.               MACGEN.EXE   the macros editor / generator
  283.               MACGEN.DOC   the MACGEN documentation
  284.               REGISTR.TXT  the registration form
  285.               E!.DOC       ready to print documentation
  286.                              ("type E!.DOC > prn")
  287.  
  288.            Please backup these files as soon as possible.
  289.  
  290.            The minimum configuration needed to install E! is :
  291.  
  292.               - IBM PC or PS/2 or compatible with 320 K memory.
  293.                 (256 to be loaded and 320 to work normally)
  294.               - 1 diskette drive (not recommended)
  295.               - DOS 3.xx
  296.               - color or monochrome display with MDA, CGA, EGA, PGA,
  297.                 MCGA, VGA or Hercules adapter.
  298.               - 83 or 101 keys keyboard.
  299.  
  300.            To  install  E!  on  a  two diskette drive system, you only need
  301.       to   copy   all  files  except  documentation  on  a  work  diskette.
  302.       Documentation  will  not  fit  on the same diskette that programs and
  303.       utility files.
  304.  
  305.            To  install  E!  on a hard disk system, create a directory named
  306.       C:\E!  (or  whatever  name  you'd  like)  and  copy all files in this
  307.       directory.
  308.  
  309.            Then edit your autoexec.bat and add the following line:
  310.  
  311.            SET E!=C:\E! (or the name you choosed)
  312.  
  313.            You  can  extend  your  environment  string  if needed using the
  314.       following DOS command in your CONFIG.SYS :
  315.  
  316.             SHELL=C:\COMMAND.COM /P /E:nnn
  317.  
  318.            This will set the environment string length to nnn.
  319.  
  320.                                 E!.DOC page 5
  321.                                     E!.DOC
  322.  
  323.  
  324.            This  way,  E!  will easily find the help file, the main PROFILE
  325.       and  all  utility files (such as the font files). All temporary files
  326.       generated  by  E!  will  be written in that directory. Macros will be
  327.       retrieved from and saved to that directory also.
  328.  
  329.            If  there  is  no  E!  environment  variable in your environment
  330.       string,  E!  will use the current directory as a default. Even if you
  331.       use  E!  on a two diskette drives system, we recommend you set the E!
  332.       variable to the right drive.
  333.  
  334.            If  you  are  working  with a hard disk, don't forget to add the
  335.       directory where you put your E! files to your PATH command.
  336.  
  337.            So far, you are done with the installation of the E! editor.
  338.  
  339.            NOTES about DOS 3.3 :
  340.  
  341.            The  keyboard  driver  of  DOS  3.3  has  some bugs. It does not
  342.       recognize  some  keystrokes  from  enhanced  keyboard  and some "old"
  343.       keystrokes  like  Alt  -  or  Alt  =.  This is at least true for some
  344.       european  drivers  like  KEYB  FR or KEYB GR. If you have any problem
  345.       with  the keyboard under DOS 3.3, use the KEYBxx.COM program from DOS
  346.       3.2 or 3.1 instead of KEYB.COM.
  347.  
  348.            If   you   still   have  problems  with  functions  assigned  to
  349.       "unreachable"   keystrokes  on  your  keyboard,  try  reassign  these
  350.       functions to another key. See below.
  351.  
  352.            Please see also the "TYPEMATIC" section of the PROFILEs chapter.
  353.  
  354.            If  you  have  a  RAM  disk  it  is  highly recommended that you
  355.       autoexec.bat  copy  E!.EXE,  E!  help  and  messages  files and macro
  356.       files to this RAM disk.
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.                                 E!.DOC page 6
  385.                                     E!.DOC
  386.  
  387. C. GETTING STARTED
  388. __________________
  389.  
  390.  
  391.            There is two ways to put E! at work :
  392.  
  393.            1. Enter E! without any parameter at the DOS prompt.
  394.  
  395.            2.  Enter  E!  followed  by  one or more file specification. DOS
  396.       "wildcards" (* and ?) are allowed.
  397.  
  398.  
  399.                E! [specfich1] [specfich2]...[specfichn]  [/l]
  400.  
  401.                example :
  402.  
  403.                E! C:\*.BAT C:\EDIT\*.*
  404.  
  405.            will  load  any  .BAT file from the root directory and all files
  406.       from  the  C:\EDIT  directory if there is enough memory space to hold
  407.       all these files.
  408.  
  409.            You  can  use the "/l" or "/L" parameter anywhere on the command
  410.       line  to  tell E! to load all the files edited in the last E! session
  411.       in  that  directory.  This  option  will  only  work  if  your active
  412.       profile contains the following line:
  413.  
  414.            LOG YES
  415.  
  416.            examples :
  417.  
  418.            e! /l
  419.            e! *.pas /l
  420.            e! *.pas /l *.doc
  421.  
  422.            are valid E! command lines.
  423.  
  424.            /l  is the only command line parameter accepted by E!. All other
  425.       parameter  should  be  a  file  specification.  All other options are
  426.       definable   within   the   PROFILEs.   Please   see  also  "AUTOMATIC
  427.       POSITIONNING".
  428.  
  429.            During  a E! session a file is never empty and contains at least
  430.       a CRLF sequence followed by an EOF mark (1Ah). So its size will be at
  431.       least 3 bytes.
  432.  
  433.  
  434.       GLOBAL FILE SEARCH
  435.       ******************
  436.  
  437.            Except  if  you  specify a path for the file(s) you want to edit
  438.       E!  will  always search in the current directory only. If you want E!
  439.       to  search  in  other  directories  you  will  have to use the E!PATH
  440.       environment  variable.  If you want E! to search automatically in the
  441.       C:\ASM\SOURCES  directory  you have to add the following line to your
  442.       AUTOEXEC.BAT file :
  443.  
  444.            SET E!PATH=C:\ASM\SOURCES;
  445.  
  446.            Use the same syntax as for the DOS PATH command.
  447.  
  448.                                 E!.DOC page 7
  449.                                     E!.DOC
  450.  
  451.  
  452.            You  can  specify up to 20 different paths. If you are using the
  453.       DOS   APPEND   command,   all  paths  specified  within  the  APPEND=
  454.       environment substring are also searched.
  455.  
  456.            You  should  notice  that  it  is  preferable  to use the E!PATH
  457.       variable  than  any  other  command  or utility. Actually, E! returns
  458.       always  a  full  pathname  for  each file it does edit. If you let E!
  459.       find  a  file  thru  any  utility  like DOSSEARCH or DATAPATH etc...,
  460.       the  file  will  be  automatically saved in the current directory and
  461.       not  in  the  directory  where  it was found. This is because the DOS
  462.       FindFirst  and  FindNext functions do not return a full path but only
  463.       the file name.
  464.  
  465.            Please   be  aware  that  the  GET  command  does  not  use  the
  466.       capabilities described above.
  467.  
  468.            If  you  called  E!  without  any parameter, E! will edit a file
  469.       named E!TEMP.E!. If it already exists, it will be loaded.
  470.  
  471.  
  472.       NON TEXT FILES
  473.       **************
  474.  
  475.            If  you  specified  a non text file E! will try to load it. Most
  476.       of  the  time  it  will  recognized that this file is not an editable
  477.       text  and  will  issue  a  warning message. This message will also be
  478.       issued  if  the  text  file  does  not  use  full  CRLF  sequences to
  479.       terminate  a  line  but  only a CR. This does not matter and the file
  480.       will  be  normally  editable.  The missing Line Feed will be added by
  481.       file  saving  (except  if  you  told  E!  not  to  do so thru the EOL
  482.       command in your PROFILE).
  483.  
  484.            If  you  want  E! not to load particular files, you only have to
  485.       use  the  LOCK option in your PROFILE. Please see the LOCK section in
  486.       the E! COMMANDS chapter.
  487.  
  488.            If you have loaded a non text file PLEASE DO NOT SAVE IT ! or it
  489.       will likely be truncated.
  490.  
  491.  
  492.       AUTOMATIC POSITIONNING
  493.       **********************
  494.  
  495.            Each  time  you  leave  a E! session, current file names, cursor
  496.       position  and  editing context are saved in a LOG file. If you reload
  497.       one  of  the  last  edited  files E! will restore all these variables
  498.       and  set  the  cursor at the last active position for this file. Here
  499.       is  the  description  of  the  editing  context  elements  which  are
  500.       restored for each file :
  501.  
  502.            - window position if any was active
  503.            - cursor position for each window
  504.            - text position within window
  505.            - wordwrap and justification flags or draw mode flag if it was
  506.              active
  507.            - bookmark position
  508.  
  509.            Draw style is a global variable for E! and is not restored.
  510.  
  511.  
  512.                                 E!.DOC page 8
  513.                                     E!.DOC
  514.  
  515.            This  functions are available only if you the LOG option to YES.
  516.       If  not  or if the E!.LOG file has been deleted, E! will position the
  517.       cursor at the beginning of text.
  518.  
  519.            Automatic  repositionning does not work if you leave the file in
  520.       a non 25 lines editing mode.
  521.  
  522.            The  LOG  YES/NO  command  can  be  inserted  in your PROFILE or
  523.       entered on the E! command line. Please see the PROFILE chapter.
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.                                 E!.DOC page 9
  577.                                     E!.DOC
  578.  
  579. D. THE "E!" SCREEN
  580. __________________
  581.  
  582.  
  583. COLORS
  584.  
  585.            E!  will  configure  itself  automatically  as  it is loaded. It
  586.       will  detect  the  display  adapter  type which is active and set all
  587.       relative  options  accordingly. In some cases E! will set all display
  588.       attributes  to  black  and  white. This will occur on PS/2 because on
  589.       PS/2  8530  there  is  no MONO (7) mode even if you have a monochrome
  590.       screen.  If  you want color attributes in such a case please set them
  591.       directly in your main PROFILE. See the PROFILE chapter.
  592.  
  593.                                  *******
  594.  
  595. STATUS
  596.  
  597.            The  first line on the E! screen is the STATUS line. It contains
  598.       the following informations :
  599.  
  600.               . The Text Beginning / Text End indicator or E! version number.
  601.  
  602.               . The "file modified" indicator ( │M│ ).
  603.  
  604.               . The current row number.
  605.  
  606.               . The current column number.
  607.  
  608.               . The total number of lines in the current text.
  609.  
  610.               . A clock (Edit mode) or the file name (Command mode).
  611.  
  612.            Informations  on  this  line are continuously updated. If memory
  613.       becomes  "short"  the  message "MEMORY !!!" will appear on the status
  614.       line  (less  than  2048  bytes available). If there is less than 1024
  615.       bytes  available the message will blink. In this case please save and
  616.       release one or more files to make room.
  617.  
  618.  
  619. TEXT
  620.  
  621.            The  following  22,  32,  40  or  47  lines  (according  to  the
  622.       current  settings)  are  devoted  to the text being edited. This area
  623.       can  be  split  into  two windows. All editing functions are reviewed
  624.       later.
  625.  
  626.            When  the  first  line  displayed  is the very first line of the
  627.       text,  the  [Top  of Text] indicator is displayed. When the last line
  628.       displayed  is  the  very  last  line  the  [End of Text] indicator is
  629.       displayed on the STATUS line.
  630.  
  631.  
  632. COMMAND
  633.  
  634.            The  last  but one line on the screen is the E! COMMAND LINE. On
  635.       this line you will enter and edit E! commands. These commands will be
  636.       described later. While in EDIT mode this line displays :
  637.  
  638.               . The current file name.
  639.  
  640.                                 E!.DOC page 10
  641.                                     E!.DOC
  642.  
  643.  
  644.               . The insert toggle status (Ovrw or Ins).
  645.  
  646.               . The  WORDWRAP (W) , JUSTIFICATION (J),  CASE ( or )
  647.                 and DRAW mode toggles status.
  648.  
  649.               . The block mark status (Marked,Unmarked or Extern).
  650.  
  651.                 Marked   : the current text is marked.
  652.                 Unmarked : no text is marked.
  653.                 Extern   : a text is marked but it is not the current text.
  654.  
  655.               . The current text size.
  656.  
  657.  
  658.            While  in  COMMAND  mode, the line is free, allowing the user to
  659.       enter, retrieve or edit commands. The ESCAPE key toggles between EDIT
  660.       mode  and  COMMAND  mode.  Commands can be retrieved using the up and
  661.       down arrow keys.
  662.  
  663.  
  664. HELP
  665.  
  666.            The   last   line   in  its  normal  state  shows  a  help  text
  667.       remembering  the  use  of  the function keys. If you depress the ALT,
  668.       SHIFT  or  CONTROL  keys,  this text will change according to the key
  669.       being depressed. (See DELAY command).
  670.  
  671.            Error messages are displayed on the help line when necessary.
  672.  
  673.            Functions requesting input from the user generally display their
  674.       prompt on the help line.
  675.  
  676. FILENAMES
  677.  
  678.            Within  E!  filenames  are always "normalized". The name used is
  679.       always  the  full  path name of the file. This is a security for your
  680.       files  since this function makes it impossible to load twice the same
  681.       file.
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.                                 E!.DOC page 11
  705.                                     E!.DOC
  706.  
  707. E.  MAIN FUNCTION KEYS
  708. ______________________
  709.  
  710.  
  711.            We  will  now  present  the "basic" configuration of E!. In EDIT
  712.       mode  all  keys  and functions can be reassigned (except ESCAPE). May
  713.       be,  you'll  have  to  modify  the  help  files or the messages file.
  714.       This  files  were  intentionnaly  made  editable  to  make  this  job
  715.       easier.  Though,  in  COMMAND  mode editing keys are not redefinable.
  716.       So we recommend you do not reassign these keys.
  717.  
  718.            i.e.  :  HOME  will always put the cursor at the beginning of the
  719.       command  line  in COMMAND mode even if you assigned a new function to
  720.       the home key in EDIT mode.
  721.  
  722.            REMEMBER  :  Use  the ESCAPE key to toggle between EDIT mode and
  723.       COMMAND mode.
  724.  
  725.            Now, let's have a look at the 10 main functions keys.
  726.  
  727.  
  728.       ┌──┐ ┌──────┐
  729.       │F1│ │Alt F1│
  730.       └──┘ └──────┘
  731.  
  732.            F1  will  load the E! HELP file, E!.HLP. This is a "normal" text
  733.       file  which you may want to edit each time you reassign a function to
  734.       a  key.  Using  the  PgDn and PgUp keys will take you from chapter to
  735.       chapter.  If  you  want  to access a chapter directly, enter the line
  736.       number specified in the table of contents on the command line.
  737.  
  738.            We  recommend you protect this file after modifying it using the
  739.       DOS command ATTRIB :
  740.  
  741.               attrib +r e!.hlp
  742.  
  743.            To make new modifications enter :
  744.  
  745.               attrib -r e!.hlp
  746.  
  747.            Editing   read-only   files   is  allowed  with  E!.  It's  just
  748.       impossible to save them.
  749.  
  750.            KEY ORIENTED HELP
  751.            *****************
  752.  
  753.            Let's  assume  you have forgotten what function is assigned to a
  754.       specific  key.  Just  hit  Alt F1. E! will issue a message asking you
  755.       to  hit  the key about which you want information. Hit this key and a
  756.       short  message  will  be  displayed explaining what this key actually
  757.       does.
  758.  
  759.            This  message  is  valid even if you have assigned a non default
  760.       function, a macro, a command or a profile to that key.
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.                                 E!.DOC page 12
  769.                                     E!.DOC
  770.  
  771.       ┌──┐
  772.       │F2│
  773.       └──┘
  774.  
  775.            F2  causes  the  current text to be written to disk. If the file
  776.       already  exists  a  warning message is issued. Hit Y or N in response
  777.       to  the  prompt.  If  the  active  PROFILE  contains  the  WARNING NO
  778.       command  (or  if  it has not modified a previous WARNING NO command),
  779.       no   warning  message  is  issued  and  the  file  is  saved  without
  780.       prompting the user.
  781.  
  782.            The WARNING NO command may be entered on the E! command line.
  783.  
  784.       ┌──┐
  785.       │F3│
  786.       └──┘
  787.  
  788.            F3  tells E! you want to quit the current text. If this text has
  789.       been  modified  E!  prompts  you to know if you want to "discard" all
  790.       modifications you made. Hit Y or N in response to the prompt.
  791.  
  792.       ┌──┐
  793.       │F4│
  794.       └──┘
  795.  
  796.            F4  is  the  same  as  F2  + F3. The only difference is that the
  797.       text  is  never  "compressed"  when  you  save it with F2. It will be
  798.       compressed  if  you  save  it  with  F4  only  if your active PROFILE
  799.       contains  the  AUTOCOMP  YES  command, if you entered this command on
  800.       the E! command line or if you explicitly compressed the text with the
  801.       COMPRESS  command  before  you  saved  it.  Please  see  COMPRESS and
  802.       AUTOCOMP commands.
  803.  
  804.       ┌──┐
  805.       │F5│
  806.       └──┘
  807.  
  808.            F5   creates   an   horizontal  window  at  the  current  cursor
  809.       position.  If  a  window  was  already  active, it will be destroyed.
  810.       While  in "screen split mode" you can toggle between windows with the
  811.       ALT F5 key.
  812.  
  813.            Updating  a window will also update the alternate window if they
  814.       share a common portion of text.
  815.  
  816.       ┌──┐
  817.       │F6│
  818.       └──┘
  819.  
  820.            This  key  activates,  initializes  or terminates the DRAW mode.
  821.       DRAW  mode  is  fully  explained  later  in  this  documentation.  E!
  822.       automatically  toggles  to  COMMAND  mode  and prompts you for a DRAW
  823.       mode.  An  help  message is displayed allowing you to choose one of 8
  824.       DRAW modes. An empty entry activates the last active DRAW mode or the
  825.       mode #1 if you never used the DRAW mode in this session.
  826.  
  827.            If you were already in DRAW mode it is deactivated.
  828.  
  829.            While in DRAW mode, WORDWRAP and JUSTIFICATION are automatically
  830.       deactivated.  They  will be restored in their previous state when you
  831.  
  832.                                 E!.DOC page 13
  833.                                     E!.DOC
  834.  
  835.       will exit the DRAW mode.
  836.  
  837.       ┌──┐
  838.       │F7│
  839.       └──┘
  840.  
  841.            F7  activates the COMMAND mode and initializes the NAME command.
  842.       So  you  can  rename  the current text. The original file will remain
  843.       unchanged.  If  you gave the name of an existing file, E! will prompt
  844.       you at save time only if the WARNING option is active. See above.
  845.  
  846.       ┌──┐
  847.       │F8│
  848.       └──┘
  849.  
  850.            F8  activates the COMMAND mode and initializes the EDIT command.
  851.       E!  waits  for  one  or  more  file  specifications.  Like on the DOS
  852.       command line, wildcards are allowed. Please see GETTING STARTED.
  853.  
  854.       ┌──┐
  855.       │F9│
  856.       └──┘
  857.  
  858.            F9  will  restore  the  current line in its previous state, that
  859.       is  the  state  it  was  when  you  moved the cursor to that line. Be
  860.       aware  that  certain  functions validate the current line even if you
  861.       do  not  leave  it.  In  this  case  F9  will  take the new line into
  862.       account.
  863.  
  864.            F9  will  also  add the current line into the UNDO buffer before
  865.       restoring  the  previous  state of the line. So you can copy the line
  866.       anywhere  in  the  text  using  ALT 8 (read from UNDO buffer) without
  867.       having to unmark an existing block or group of lines.
  868.  
  869.       ┌───┐ ┌───────┐
  870.       │F10│ │Alt F10│
  871.       └───┘ └───────┘
  872.  
  873.            If  you  are  editing several files simultaneously, you can move
  874.       thru the files buffers using F10 (forward) and ALT F10 (backward). If
  875.       you want to access a text directly you can:
  876.  
  877.            1/  Enter  an  EDIT  filename command. E! knows that the file is
  878.       already in memory and will not reload it.
  879.  
  880.            2/  Use  the  ALT1..3 keys to mark a text and access it directly
  881.       using the same keys.
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.                                 E!.DOC page 14
  897.                                     E!.DOC
  898.  
  899. F. MOVING THE CURSOR
  900. ____________________
  901.  
  902.            Moving  the  cursor  with  E!  is  done in a very classical way.
  903.       That  is  you  will  not be surprised using general purpose keys such
  904.       as  arrow  keys,  PgDn,  PgUp,  Home  and  so  on... Although this is
  905.       absolutely  possible,  we  don't  recommend  that you reassigned such
  906.       "classical" keys.
  907.  
  908.  
  909.          Direction keys....Move   one  character  up,  down,  left  or
  910.                            right.  Pressing  the down arrow will add a
  911.                            new  and  empty  line  to  the  text if the
  912.                            EXTENSION  option  of  the  active  profile
  913.                            has been set to YES (default).
  914.  
  915.          SHIFT+arrow.......If   your  keyboard  does  not  accept  the
  916.                            TYPEMATIC  commands  you can accelerate the
  917.                            cursor  horizontal  displacement by keeping
  918.                            one  of  the  SHIFT keys depressed when you
  919.                            use  the  left or right arrow key. This may
  920.                            not  work  on  certain  "compatibles"  like
  921.                            the  COMPAQ  machines.  In  this  case  you
  922.                            will  have  to  set the CURSOR option to NO
  923.                            in  your  main  profile.  This  will  avoid
  924.                            problems.
  925.  
  926.          Tab...............Move  the  cursor to the next TAB pos. (See
  927.                            Autotab).  All  text  at  the  right of the
  928.                            cursor  position  is  moved  along with the
  929.                            cursor.
  930.  
  931.          Shift Tab.........Move   the   cursor  to  the  previous  TAB
  932.                            position.
  933.  
  934.          Backspace.........Delete    left    character.   Please   see
  935.                            Autoback.   If   the   cursor  is  at  line
  936.                            beginning,  the  current  line is joined to
  937.                            the previous line.
  938.  
  939.          PgDn,PgUp.........Scroll one window up or down.
  940.  
  941.          Home..............Move  the  cursor to the beginning of line.
  942.                            If  the  cursor is already on this position
  943.                            it   is  moved  to  the  beginning  of  the
  944.                            previous line.
  945.  
  946.          End...............Move  the  cursor  to  the  end of line. If
  947.                            the  cursor  is already at this position it
  948.                            will  be  moved  to  the  end  of  the next
  949.                            line.
  950.  
  951.          Ctrl Home.........Move  the  cursor  to  the  first  line  of
  952.                            text.  If  the  cursor  is  already  on the
  953.                            first   line   it  will  be  moved  to  the
  954.                            beginning of line.
  955.  
  956.          Ctrl End..........Does  the  same  but towards the end of the
  957.                            current text.
  958.  
  959.  
  960.                                 E!.DOC page 15
  961.                                     E!.DOC
  962.  
  963.          Ctrl PgUp,PgDn....Move  the  cursor  to  the top or bottom of
  964.                            the active window.
  965.  
  966.          Ctrl Left,Right...Move  the  cursor  to  the  next,  previous
  967.                            word.  E!  really  searches  a word, so all
  968.                            punctuations signs will be ignored.
  969.  
  970.          Shft F1,F2,F3,F4..Scroll  the  current  window  right,  left,
  971.                            up  or  down. You  can  also  scroll larger
  972.                            amounts  of text,  left   or   right  using
  973.                            ALT F3 or ALT F4.  The   amount  of columns
  974.                            to  be  scrolled  is  specified  using  the
  975.                            SCROLL  command in the  active  PROFILE  or
  976.                            on the E! command line.  E!  defaults to 40
  977.                            columns.
  978.  
  979.          Shft F5...........Center  the  current  line  in  the  active
  980.                            window.
  981.  
  982.          Shft F6...........Move   the  current  line  to  the  top  of
  983.                            active window.
  984.  
  985.          Alt I.............Remove all TAB positions.
  986.  
  987.          Alt K.............Drop   a   bookmark   at   current   cursor
  988.                            position.  Using  ALT K again will move the
  989.                            cursor  to  the  bookmark  and  remove  it.
  990.                            Should  you  want  to use the bookmark more
  991.                            than  once,  so  please  hit  ALT  K  twice
  992.                            each  time  you  move  the  cursor  to  the
  993.                            bookmark.   There   is   one  bookmark  per
  994.                            active text.
  995.  
  996.          Alt P.............Move  the  cursor  to  the  next paragraph.
  997.                            Paragraphs   are   separated   with   blank
  998.                            lines.
  999.  
  1000.          Alt T,R...........CreaTe  or  Remove  a TAB position. Use TAB
  1001.                            or SHIFT TAB to access TAB positions.
  1002.  
  1003.          Alt Y,E...........Move  the  cursor  to  the  beginning or to
  1004.                            the end of the marked block.
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.                                 E!.DOC page 16
  1025.                                     E!.DOC
  1026.  
  1027. G. EDITING FUNCTIONS
  1028. ____________________
  1029.  
  1030.            E!  has  a  lot of editing features. Generally editing functions
  1031.       will  be called using a keystroke involving the Control key. The next
  1032.       chapter  explains  how  E!  implements  block manipulation functions.
  1033.       These  functions  are generally called with a keystroke involving the
  1034.       Alt key.
  1035.  
  1036.  
  1037.          Ctrl A............Move  the  current  line  first  non  blank
  1038.                            character to cursor position.
  1039.  
  1040.          Ctrl B............Convert  the  first  letter  of the current
  1041.                            word  to  uppercase.  If  the  current word
  1042.                            contains one of the following characters :
  1043.  
  1044.                              - (minus) ,  _ (underscore)  , . (dot)
  1045.  
  1046.                            each  letter  preceding this character will
  1047.                            also  be  converted to uppercase. All other
  1048.                            characters   in   the   current   word  are
  1049.                            converted  to  lowercase if necessary. This
  1050.                            will  be  useful  if  you  are using Pascal
  1051.                            conventions to name your program variables.
  1052.  
  1053.          Ctrl C............Clear the current line.
  1054.  
  1055.          Ctrl D............Repeat  character.  This  function  will be
  1056.                            used  to  enter a great number of identical
  1057.                            characters. First enter the character to be
  1058.                            repeated   and  then  enter  the  3  digits
  1059.                            constituing  the  repeat  count.  Note  : 3
  1060.                            digits  are  mandatory.  When  calling this
  1061.                            function E! displays a help message showing
  1062.                            you how to enter this information.
  1063.  
  1064.          Ctrl E............Delete end of line from cursor.
  1065.  
  1066.          Ctrl F............Toggle the WORDWRAP mode.
  1067.  
  1068.          Ctrl G............Toggle  the  35,  43 or 50 lines mode if an
  1069.                            EGA  or VGA adapter is installed and if the
  1070.                            EGA-VGA  command  is  set  to  YES  in your
  1071.                            active  profile  (which is the default). To
  1072.                            access  the  35  lines mode you have to set
  1073.                            the  35LINES  command to YES in your active
  1074.                            profile.
  1075.  
  1076.                                    Adapter      EGA        VGA
  1077.  
  1078.                              EGA-VGA YES
  1079.                              35LINES NO........  43         50
  1080.  
  1081.                              EGA-VGA YES
  1082.                              35LINES YES.......  35         35
  1083.  
  1084.                            To  set  the  35 lines mode E! needs a file
  1085.                            named  E!FNT35.EGA.  This file contains the
  1086.                            font  for the 35 lines mode. This file must
  1087.  
  1088.                                 E!.DOC page 17
  1089.                                     E!.DOC
  1090.  
  1091.                            be  present either in the current directory
  1092.                            or  in  the E! directory (directory defined
  1093.                            with   SET  E!=....).  Please  notice  that
  1094.                            loading  a  non 25 lines mode also modifies
  1095.                            the  BIOS hardcopy routine so it will print
  1096.                            exactly   the   number  of  lines  you  are
  1097.                            actually  using on your screen. There is an
  1098.                            alternate  35  lines  font  which  is named
  1099.                            E!FNT352.EGA. If you want to use it instead
  1100.                            of the default font please rename this file
  1101.                            to E!FNT35.EGA.
  1102.  
  1103.          Ctrl J............Toggle the right JUSTIFICATION mode.
  1104.  
  1105.          Ctrl L............If the current word is a valid file name it
  1106.                            will  be  immediatly  edited. This function
  1107.                            combined with the LIST command will be very
  1108.                            very convenient to search and edit files in
  1109.                            your directories.
  1110.  
  1111.                            example  :  in a C source file you have the
  1112.                            following line:
  1113.  
  1114.                            #include "c:\msc\include\myprog.h"
  1115.  
  1116.                            Move  the  cursor  anywhere  between  the 2
  1117.                            quote  characters  and hit Ctrl L. MYPROG.H
  1118.                            will be edited.
  1119.  
  1120.          Ctrl N............Insert   the   file   name  at  the  cursor
  1121.                            position. This works also on the E! command
  1122.                            line.
  1123.  
  1124.          Ctrl P............Execute active macro (see MACROS).
  1125.  
  1126.          Ctrl Q............Restore previous macro (see MACROS).
  1127.  
  1128.          Ctrl R............Record macro (see MACROS).
  1129.  
  1130.          Ctrl S............Repeat last search (see SEARCH commands).
  1131.  
  1132.          Ctrl T............Insert date and time at cursor position.
  1133.  
  1134.          Ctrl U............Cancel macro recording (see macros).
  1135.  
  1136.          Ctrl V............Reset    search   variables   (see   SEARCH
  1137.                            commands).
  1138.  
  1139.          Ctrl W............Delete current word.
  1140.  
  1141.          Ctrl X............If   the   current  line  is  a  valid  DOS
  1142.                            command  it  will be eXecuted. As with Ctrl
  1143.                            L,  it  will be very convenient to use this
  1144.                            function combined with the LIST command.
  1145.  
  1146.                            For  example,  if  you  are editing a batch
  1147.                            file  you  will  conveniently  debug  it or
  1148.                            execute  it  partially using Ctrl X on each
  1149.                            line  you  want to be eXecuted. If you want
  1150.                            to  delete  a  file in a directory, use the
  1151.  
  1152.                                 E!.DOC page 18
  1153.                                     E!.DOC
  1154.  
  1155.                            LIST  command  to  display  that directory,
  1156.                            insert  "DEL"  before the file name and use
  1157.                            Ctrl X, etc...
  1158.  
  1159.          Ctrl Z............If  the  current  line is a valid directory
  1160.                            name,  this  directory  will be LISTed. Any
  1161.                            <DIR> sequence at the beginning of the line
  1162.                            will  do  no harm (that is, if you obtained
  1163.                            the directory name from a LIST command Ctrl
  1164.                            Z will work anyway).
  1165.  
  1166.          Enter.............Insert a new line and move the cursor under
  1167.                            the   first  non  blank  character  of  the
  1168.                            previous  line.  If  the  WORDWRAP mode has
  1169.                            been  activated  the cursor is moved to the
  1170.                            left  margin.  If  the  previous  line is a
  1171.                            blank   line,   cursor   is  moved  to  the
  1172.                            paragraph  margin.  To insert a line before
  1173.                            the very first line of text you have to put
  1174.                            the  cursor  on  the status line and to hit
  1175.                            ENTER.  No other function is available when
  1176.                            the cursor stays on the status line.
  1177.  
  1178.          BSpace............Delete left character. See AUTOBACK. If the
  1179.                            cursor  is  at  the  beginning  of line the
  1180.                            current  line  is  joined  to  the previous
  1181.                            line.
  1182.  
  1183.          Ctrl Bsp..........Delete  the  current  line.  This line will
  1184.                            be  saved  in  the  UNDO  buffer.  You  can
  1185.                            restore  it  later using Alt 8 : it will be
  1186.                            restored at cursor position.
  1187.  
  1188.          Del...............Delete current character.
  1189.  
  1190.          Insert............Toggle insert mode.
  1191.  
  1192.          Ctrl F1...........Convert the current word to UPPERCASE. Ctrl
  1193.                            F2 will convert to lowercase.
  1194.  
  1195.          Ctrl F3...........Convert  the  current  block  to UPPERCASE.
  1196.                            Ctrl F4 will convert to lowercase.
  1197.  
  1198.          Ctrl F6...........Reformat     current     paragraph     (see
  1199.                            FORMATTING).
  1200.  
  1201.          Ctrl F7...........Reformat current marked group of LINES.
  1202.  
  1203.          Alt J.............Join next line to current line.
  1204.  
  1205.          Alt S.............Split  current line at cursor position. The
  1206.                            beginning of the new line is aligned on the
  1207.                            the  beginning of the current line. The new
  1208.                            line becomes the current line.
  1209.  
  1210.          Alt V.............Remove  all  trailing  blanks  for all text
  1211.                            lines.   Trailing   blanks   are  sometimes
  1212.                            generated  using  the  COPY BLOCK function.
  1213.                            The   SPACES  YES  option  in  your  active
  1214.                            profile   will  tell  E!  to  automatically
  1215.  
  1216.                                 E!.DOC page 19
  1217.                                     E!.DOC
  1218.  
  1219.                            remove  all trailing blanks before saving a
  1220.                            file.
  1221.  
  1222.          Alt X.............Toggle   access   to   "control  characters
  1223.                            editing".   Since  many  E!  functions  are
  1224.                            driven  through control  characters  it  is
  1225.                            normally not possible to insert them in the
  1226.                            edited   text.   Alt   X  disables  control
  1227.                            characters  interpretation  and  print them
  1228.                            "as  is"  in  the  text. Doing so makes all
  1229.                            functions triggered with Control characters
  1230.                            unavailable  until  you  hit  Alt  X again.
  1231.                            Note:  Using  control character 26 (Ctrl Z)
  1232.                            in  a  text will insert an EOF mark. So you
  1233.                            will  not be able to reload the file beyond
  1234.                            this mark.
  1235.  
  1236.          Alt =.............Insert  blanks  without  moving the cursor.
  1237.                            NOTE:   see  remarks  on  DOS  3.3  at  the
  1238.                            beginning  of this documentation and in the
  1239.                            DEFINE command section.
  1240.  
  1241.          Alt 0.............Search   the   current  word  beginning  at
  1242.                            cursor   position.   You  can  search  next
  1243.                            occurences using Ctrl S or Alt 0.
  1244.  
  1245.          Alt 1,2,3.........You  can  "mark" the current text using one
  1246.                            of  these  keys.  Using  the same key again
  1247.                            will   bring   you  back  directly  to  the
  1248.                            "marked"  text  from  another  text. If you
  1249.                            hit  the  Alt  n  key  while editing a text
  1250.                            which  IS  the  text  corresponding to that
  1251.                            key,  marking is removed.
  1252.  
  1253.          Alt 4.............Remove  all  text  marks.  If you release a
  1254.                            "marked"     text     from    memory    the
  1255.                            corresponding  mark  becomes  available  to
  1256.                            other texts.
  1257.  
  1258.          Alt 5.............Refresh  the  current  text.  That  is  all
  1259.                            modifications  you  made  since  you loaded
  1260.                            or  saved  the  text  are discarded and the
  1261.                            text  is  reloaded  from  disk  file.  This
  1262.                            works  exactly  the  same  as releasing the
  1263.                            text  from  memory  without  saving  it and
  1264.                            issuing  a  new  EDIT  command but it saves
  1265.                            time.
  1266.  
  1267.          Alt 6.............Search  a  "MATCHING  BRACE".  Assuming you
  1268.                            are editing the following expression :
  1269.  
  1270.                               3 * (x / (y + z * ( a + b + c)) + 45 )
  1271.                                        
  1272.  
  1273.                            If   you   want  to  find  the  parenthesis
  1274.                            corresponding    to    the    second   left
  1275.                            parenthesis,   move   the   cursor  to  the
  1276.                            second  left  parenthesis  and  hit  Alt 6.
  1277.                            The   cursor   will   be   moved   to   the
  1278.                            corresponding right parenthesis.
  1279.  
  1280.                                 E!.DOC page 20
  1281.                                     E!.DOC
  1282.  
  1283.  
  1284.                               3 * (x / (y + z * ( a + b + c)) + 45 )
  1285.                                                             
  1286.  
  1287.                            If  there  is  no  matching  brace  on  the
  1288.                            current  line,  the  cursor  is  not moved.
  1289.                            Alt  6  works  with  braces pairs showed in
  1290.                            the   next  paragraph.  Alt  6  works  with
  1291.                            right or left braces.
  1292.  
  1293.          Alt 7.............Insert a "PAIRED BRACE".
  1294.  
  1295.                            1.  E!  looks  for  one  of  the  following
  1296.                            sequence  on  the  current line between the
  1297.                            beginning  of  line  and the current cursor
  1298.                            position :
  1299.  
  1300.                            /* , (* , { , < , [ , (
  1301.  
  1302.                            If   such   a   sequence   is   found   the
  1303.                            corresponding right brace is inserted.
  1304.  
  1305.                            2.If not, E! looks for one of the following
  1306.                            sequence   between   the   current   cursor
  1307.                            position and the end of line :
  1308.  
  1309.                            */ , *) , } , > , ] , )
  1310.  
  1311.                            If   such   a   sequence   is   found   the
  1312.                            corresponding  left  brace  is inserted. If
  1313.                            several   "brace   sequences"   are  found,
  1314.                            priority order is as shown above.
  1315.  
  1316.          Alt 8.............See UNDO.
  1317.  
  1318.          Alt 9.............Insert  the  last  line  saved  to  the DOS
  1319.                            screen   buffer   just  after  the  current
  1320.                            line.  The  DOS  screen buffer contains the
  1321.                            last  25  lines  from  the last DOS session
  1322.                            executed  from  E!  or,  if  no DOS session
  1323.                            has  been  executed,  the  screen  that was
  1324.                            active  when  E!  was  called  from the DOS
  1325.                            command  line.  Trailing blank lines on the
  1326.                            screen  are  not  saved  in  the DOS screen
  1327.                            buffer.  So  you  can  insert  in your text
  1328.                            the  results  of any program if it does not
  1329.                            clear  the screen on exit. DOS lines can be
  1330.                            restored only once.
  1331.  
  1332.  
  1333.  
  1334.       UNDO FUNCTION - (ALT 8)
  1335.       ***********************
  1336.  
  1337.            When  you  delete  lines with Ctrl Bsp or Alt D (marked group of
  1338.       lines  -  with  Alt  L)  these  lines are not lost but saved into the
  1339.       UNDO  buffer.  The  UNDO  buffer  size defaults to 2048 bytes but you
  1340.       can  modify  it with the "UNDO n" option in your main profile where n
  1341.       is  the  number  of  bytes.  This  command  can be issued in the main
  1342.       profile  only  (E!.LOG).  That  is  each  new  UNDO  command  will be
  1343.  
  1344.                                 E!.DOC page 21
  1345.                                     E!.DOC
  1346.  
  1347.       ignored. The upper limit for the UNDO size is 65521 bytes.
  1348.  
  1349.            The  UNDO  buffer  works  on  a  LIFO  basis,  that  is the last
  1350.       deleted  line  will be restored first. So a call to the UNDO function
  1351.       (Alt  8)  will restore the last deleted line and so on until the UNDO
  1352.       buffer  is  empty.  Each  line is restored on top of the current line
  1353.       and  becomes  the  active line. So the text will be reinserted in its
  1354.       original  state.  There  will be no UNDO buffer overflow; if there is
  1355.       no  room  enough  to  store  the last deleted line, the older line in
  1356.       the  buffer  will  be lost. A line can be restored only once from the
  1357.       UNDO buffer.
  1358.  
  1359.            Note  :  when  the  buffer is full, the time used to save a line
  1360.       will be proportional to the buffer size. So, it is not recommended to
  1361.       use too large UNDO buffer sizes.
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.                                 E!.DOC page 22
  1409.                                     E!.DOC
  1410.  
  1411. H. BLOCKS MANIPULATION
  1412. ______________________
  1413.  
  1414.            Block functions are one of the most valuable features of E!. All
  1415.       block  functions  are  available to work from a text to another, that
  1416.       is, it is possible to move or copy a block or group of lines from one
  1417.       text  to another text. Consequently, only one active block is allowed
  1418.       at  one  time.  A  call  to a block function is effective even if the
  1419.       block marked is not in the current text. So be careful, if you marked
  1420.       a  block in another text, it will be deleted if you hit Alt D even if
  1421.       this  text  is  not  the current text. Before issuing a block command
  1422.       please  take  a look at the block mark status on the command line. It
  1423.       will indicate wether an internal or external block is marked.
  1424.  
  1425.            For  each  block  function to work, a rectangular block or group
  1426.       of  lines  has  to  be  marked  first. Then you can apply every block
  1427.       function to this block or group of lines. From now, we will generally
  1428.       use the term "block" for everything that is marked.
  1429.  
  1430.  
  1431.       MARKING A BLOCK - Alt B, Alt L and Alt Z
  1432.       ________________________________________
  1433.  
  1434.            There  is  3  ways  to  mark  a  block.  First,  you  can mark a
  1435.       RECTANGULAR block. To do so, you have to move the cursor to the upper
  1436.       left  corner of the block and hit Alt B. This will be already a block
  1437.       containing  only  one  character.  To extend the block mark, move the
  1438.       cursor  to  the  lower right corner of the block and hit Alt B again.
  1439.       Actually, the  relative position of the cursor when you hit Alt B the
  1440.       second  time  is  not so important and you can choose a "lower right"
  1441.       corner  which  is  in fact "before" the "upper left" corner. That is,
  1442.       you have just to hit Alt B twice to define a RECTANGULAR block and E!
  1443.       will understand what you want to do, whatever the cursor position.
  1444.  
  1445.            You  can  also  mark GROUP of LINES using Alt L. Again, you have
  1446.       to  hit  Alt  L twice. All lines between the two marked lines will be
  1447.       marked  and  highlighted.  You  may  naturally  mark  only  one line,
  1448.       using Alt L only once.
  1449.  
  1450.            The  third  way  of marking is the SENTENCE marking (Alt Z). You
  1451.       will  use  it  in  a  similar way as you will use Alt L but the first
  1452.       and  last  line  of  the  group  will  accept  to be partially marked
  1453.       depending  on  the  cursor position (column) when you hit Alt Z. This
  1454.       way  of  marking  is  less  frequently used than both BLOCK and LINES
  1455.       marking  but  it can be useful to extract a sentence from a paragraph
  1456.       when you are editing texts (but not programs).
  1457.  
  1458.            Anyway,  the  marked  zone  will  appear  highlighted (the block
  1459.       attribute can be specified in your profile like any other color). The
  1460.       block  mark  status  indicator on the command line will show "MARKED"
  1461.       or "EXTERNAL" if you switch to another text.
  1462.  
  1463.            From  now,  you can apply any of the function described below to
  1464.       the  marked  area.  This  marked area can be modified at any time and
  1465.       will remain active until you UNMARK it.
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472.                                 E!.DOC page 23
  1473.                                     E!.DOC
  1474.  
  1475.       UNMARKING A BLOCK - Alt U
  1476.       _________________________
  1477.  
  1478.            Alt  U  will  unmark  any  marked  area even if it is not in the
  1479.       current text.
  1480.  
  1481.  
  1482.       DELETING A BLOCK - Alt D
  1483.       ________________________
  1484.  
  1485.            Alt  D  deletes the marked area. If the area was marked with Alt
  1486.       L,  all  marked  lines  are saved in the UNDO buffer. If the area was
  1487.       marked  with  Alt  B  the corresponding lines are not deleted even if
  1488.       they  are empty after block deletion. Don't use any marking to delete
  1489.       only  one line. Use Ctrl Bsp instead. Remember, the marked block will
  1490.       be deleted even if it is an "external" block.
  1491.  
  1492.  
  1493.       COPYING A BLOCK - Alt C
  1494.       _______________________
  1495.  
  1496.            Alt  C  copies the marked block at the cursor position. That is,
  1497.       if  the  marked  area  is a GROUP of LINES, these lines are inserted
  1498.       between  the  current line and the next line. If the marked area is a
  1499.       RECTANGULAR  block,  this  block  is  inserted  at  cursor  position,
  1500.       shifting all text to the right.
  1501.  
  1502.            In  COMMAND mode, the current block is copied at cursor position
  1503.       only  if  there  is  enough room on the command line and if the block
  1504.       height is 1.
  1505.  
  1506.  
  1507.       MOVING A BLOCK - Alt M
  1508.       ______________________
  1509.  
  1510.            This  command works like the COPY command but the marked area is
  1511.       deleted after being copied.
  1512.  
  1513.  
  1514.       OVERLAYING A BLOCK - Alt O
  1515.       __________________________
  1516.  
  1517.            This  command  works  like the COPY command but the block is not
  1518.       inserted  but  overlayed at the cursor position and any existing text
  1519.       is  overwritten.  It  works  only  with  the RECTANGULAR blocks. With
  1520.       marked LINES it works exactly like COPY.
  1521.  
  1522.  
  1523.       ADJUSTING A BLOCK - Alt A
  1524.       _________________________
  1525.  
  1526.            This  function  works only with RECTANGULAR blocks. It functions
  1527.       like a MOVE but the block can overlay itself, so small adjustments of
  1528.       the block position can be made very easily.
  1529.  
  1530.  
  1531.  
  1532.  
  1533.  
  1534.  
  1535.  
  1536.                                 E!.DOC page 24
  1537.                                     E!.DOC
  1538.  
  1539.       SPECIAL FUNCTIONS
  1540.       _________________
  1541.  
  1542.  
  1543.            FILLING A BLOCK - Alt F
  1544.            _______________________
  1545.  
  1546.            Alt  F  prompts  you for a character. Hit this character and the
  1547.       marked block will be filled with it.
  1548.  
  1549.  
  1550.            SORTING LINES - Alt G
  1551.            _____________________
  1552.  
  1553.            If  the  marked area is a GROUP of LINES the sort criterion will
  1554.       be  the  entire  line.  With  a RECTANGULAR block, the sort criterion
  1555.       will  be  the  marked  part  of  the line. E! will prompt you for the
  1556.       sort  direction  (ascending  or  descending).  If  there  is  no room
  1557.       enough  on  the E! stack to complete the sort it will be interrupted.
  1558.       E! sort is VERY quick and it will be useful for many editing tasks.
  1559.  
  1560.  
  1561.            DRAWING A BOX - Alt H
  1562.            _____________________
  1563.  
  1564.  
  1565.            Alt  H  will  draw  a box around a RECTANGULAR block. The box is
  1566.       drawn WITHIN the highlighted area. So please reserve space around the
  1567.       text when marking the block. See also DRAWING mode.
  1568.  
  1569.  
  1570.            ADDING BLOCK CONTENT - Alt N
  1571.            ____________________________
  1572.  
  1573.            Alt  N  evaluates  all  lines  of  the RECTANGULAR block and add
  1574.       them  together  (if  they  represent numerical values). The result is
  1575.       then  inserted  at cursor position. The cursor may be in another text
  1576.       than  the  marked  text.  If  the  block data cannot be evaluated the
  1577.       error coordinates are displayed on the help line.
  1578.  
  1579.  
  1580.            CENTERING TEXT IN A BLOCK - Ctrl F5
  1581.            ___________________________________
  1582.  
  1583.            Ctrl F5 will center the marked text in the marked area.
  1584.  
  1585.  
  1586.            SHIFTING LINES -  Alt -
  1587.            _______________________
  1588.  
  1589.            This  function  is a convenient way to shift a group of lines to
  1590.       the  right.  You will have to mark a RECTANGULAR area. The block left
  1591.       limit  will  the  considered  to  be the start position for shifting,
  1592.       the  amount  of  columns  to  shift  will  be the block width and all
  1593.       lines  involved  in  the  block  marked  will  be  shifted. This is a
  1594.       little  hard  to  explain  but  fortunately very easy to do. Just try
  1595.       it!
  1596.  
  1597.            NOTE  :  see  remarks  about  DOS  3.4  in  the  DEFINE  command
  1598.       paragraph and at the beginning of this documentation.
  1599.  
  1600.                                 E!.DOC page 25
  1601.                                     E!.DOC
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.                                 E!.DOC page 26
  1665.                                     E!.DOC
  1666.  
  1667. I. FORMATTING
  1668. _____________
  1669.  
  1670.            Although  E!  is  not  a word processing software, it offers you
  1671.       some   powerful   formatting  functions.  Two  formatting  modes  are
  1672.       available  :  WORDWRAP  and JUSTIFICATION. JUSTIFICATION works almost
  1673.       the  same  as WORDWRAP but it also makes a right justification of the
  1674.       text being edited.
  1675.  
  1676.            This can be obtained two ways :
  1677.  
  1678.               - reformatting an existing paragraph.
  1679.  
  1680.                 or
  1681.  
  1682.               - formatting the text automatically as you type it.
  1683.  
  1684.            To   activate   these  modes  you  have  first  to  hit  Ctrl  F
  1685.       (WORDWRAP).  If  you  want  to enable the JUSTIFICATION mode you have
  1686.       also  to  hit  Ctrl  J.  If  you  desable the WORDWRAP mode, you also
  1687.       disable the JUSTIFICATION mode. Ctrl F and Ctrl J are toggle keys.
  1688.  
  1689.       NOTE :
  1690.  
  1691.            WORDWRAP  YES  and  JUSTIFY  YES are ignored in the main profile
  1692.       (E!.LOG).  This  is  because the main profile is read before any text
  1693.       is  loaded  :  E!  maintains a WORDWRAP flag and a JUSTIFICATION flag
  1694.       for  each  file.  So, by reading the main profile E! does not know to
  1695.       which file this flags should apply.
  1696.  
  1697.            The  JUSTIFICATION mode will only be active if the WORDWRAP mode
  1698.       is active. So if you have JUSTIFY YES in a profile and if there is no
  1699.       WORDWRAP  YES  command or if the WORDWRAP mode is not already active,
  1700.       JUSTIFICATION mode will be without any effect.
  1701.  
  1702.            Then  you  have  to  specify margins. There are three values you
  1703.       can  specify : the left margin, the right margin, the paragraph begin
  1704.       margin.  Defaults  are  respectively 10, 70 and 15. To change margins
  1705.       values  use  the  MARGINS  command  or  load  a  profile containing a
  1706.       MARGINS command.
  1707.  
  1708.            To  format a paragraph (remember : a paragraph is any contiguous
  1709.       text  between blank lines) move the cursor to any position within the
  1710.       paragraph and hit Ctrl F6.
  1711.  
  1712.            For  new  paragraphs,  simply  enter your text and don't worry :
  1713.       E!  will  format  it  as  you  type. Each time you'll reach the right
  1714.       margin  E!  will  justify  (if  required)  the current line, insert a
  1715.       new  line,  move  the  cursor  to  the left margin of the new line so
  1716.       quick  that  you  can  continue  entering  text  without any problem.
  1717.       Though,  if you make a modification in the paragraph you will have to
  1718.       reformat with Ctrl F6.
  1719.  
  1720.            To  format several paragraphs at a time mark them with Alt L and
  1721.       hit   CTrl  F7.  Formatting  will  begin  with  the  first  paragraph
  1722.       containing  a  marked  line  and  continue  until  the last paragraph
  1723.       containing a marked line has been reformated.
  1724.  
  1725.            If  you  toggle  to  DRAW  mode,  WORDWRAP and JUSTIFICATION are
  1726.       automatically disabled and reactivated when you leave the DRW mode.
  1727.  
  1728.                                 E!.DOC page 27
  1729.                                     E!.DOC
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741.  
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791.  
  1792.                                 E!.DOC page 28
  1793.                                     E!.DOC
  1794.  
  1795. J. DRAWING
  1796. __________
  1797.  
  1798.  
  1799.            With  E!  you  can  make  complex  drawings  with  semi-graphics
  1800.       characters  very  easily.  Hit  F6  or enter DRAW on the command line
  1801.       and specify a draw style (or mode) between 1 and 8 :
  1802.  
  1803.                   ┌─────┐      ╔═════╗      ╒═════╕      ╓─────╖
  1804.                1  ├─────┤   2  ╠═════╣   3  ╞═════╡   4  ╟─────╢
  1805.                   └─────┘      ╚═════╝      ╘═════╛      ╙─────╜
  1806.  
  1807.  
  1808.                   ███████      +++++++      +-----+      +-----+
  1809.                5  █     █   6  +     +   7  !     !   8  |     |
  1810.                   ███████      +++++++      +-----+      +-----+
  1811.  
  1812.  
  1813.            When  the  draw mode is active you "draw" by simply moving the 4
  1814.       direction  keys. E! manages automatically lines crossings so you just
  1815.       have  to indicate in which direction you want to draw. E! will do the
  1816.       job for you. To suspend drawing hit the SCROLLOCK key.
  1817.  
  1818.            When  SCROLLOCK is active, you can enter text and access many E!
  1819.       functions.  Though  we recommend you don't stay in DRAW mode if it is
  1820.       not necessary.
  1821.  
  1822.            When  you  enter the DRAW mode, the first character E! will draw
  1823.       depends  on the last direction key which was used. A simple character
  1824.       is considered as a right direction key (right arrow).
  1825.  
  1826.            When you cut an existing line you can :
  1827.  
  1828.            a. continue in the same direction, E! will draw a full cross
  1829.  
  1830.            b.  change  the  drawing  direction,  E! will link the two lines
  1831.       properly.
  1832.  
  1833.            If  you  make a mistake, just redraw over the existing line. The
  1834.       mistake will be corrected.
  1835.  
  1836.            Just  spend  a  few  minutes to try the DRAW mode : it's fun and
  1837.       easy.
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.                                 E!.DOC page 29
  1857.                                     E!.DOC
  1858.  
  1859. K. COMMANDS
  1860. ___________
  1861.  
  1862.  
  1863.            E!  commands  are entered on the E! command line. You access the
  1864.       E!  command  line  with the ESCAPE key which is a toggle key and will
  1865.       return you to the EDIT mode.
  1866.  
  1867.    1.About E! commands
  1868.    ___________________
  1869.  
  1870.            While  in  COMMAND  mode  you  can use the whole command line to
  1871.       enter  commands. All commands may be upper or lowercase. You may also
  1872.       use  shortcuts  to  enter  commands.  You  have to enter just as many
  1873.       characters  as  E!  needs  to  recognize  the  command (the "minimum"
  1874.       command is specified for each command).
  1875.  
  1876.               ex : Def for DEFINE
  1877.                    Asc for ASCII
  1878.                    Autot for Autotab
  1879.                    AutoC for Autocomp etc...
  1880.  
  1881.            All  entered  commands are stored in a circular list. So you can
  1882.       retrieve  old  commands,  reenter them or edit them. If you reenter a
  1883.       command  without  modifying  it, it is not restored. Old commands are
  1884.       retrieved  with the UP and DOWN keys. There is no limit to the number
  1885.       of commands E! can store.
  1886.  
  1887.            While  editing  the  command  line,  you  can  benefit  from the
  1888.       "normal"   line   editing   functions  (Home,  End,  Ctrl  End,  Ctrl
  1889.       Right,  Ctrl  Left,  etc...).  All  keystrokes not related to command
  1890.       line  editing  are  available  and redirected to the text. So you can
  1891.       continue  marking  and  deleting  text,  move blocks etc... A VIRTUAL
  1892.       cursor  is  always  available,  showing you what is the active cursor
  1893.       position in the text.
  1894.  
  1895.            (Please see ALT C in the BLOCKS MANIPULATION chapter).
  1896.  
  1897.            Last  but not least, any command entered on the command line and
  1898.       not  recognized  by  E! is redirected to DOS and executed. So you can
  1899.       run any internal or external DOS command or any program directly from
  1900.       the  E!  command line. If there is any problem executing this command
  1901.       E! will issue an appropriate message.
  1902.  
  1903.            You  can force command redirection to DOS prefixing your command
  1904.       with "*".
  1905.  
  1906.            ex : *LIST
  1907.  
  1908.            will  not  call  the E! "LIST" command but will directly execute
  1909.       the LIST program if available.
  1910.  
  1911.            You  can  also  execute  a  "blind"  DOS  command  prefixing the
  1912.       command  name  with  "@".  Doing so the E! screen will not be cleared
  1913.       and  the  DOS  command  will  be  executed  "in  the background". All
  1914.       program  STANDARD  outputs will be redirected in order to keep the E!
  1915.       screen  intact.  These  ouputs  are LOST. If you run a program making
  1916.       BIOS  calls  or  direct video access, the E! screen will be naturally
  1917.       affected.
  1918.  
  1919.  
  1920.                                 E!.DOC page 30
  1921.                                     E!.DOC
  1922.  
  1923.            Example:
  1924.  
  1925.            @cd\  will  switch to the root directory without showing any DOS
  1926.       prompt and without modifying the E! screen. This will save time.
  1927.  
  1928.            but issuing
  1929.  
  1930.            @dir
  1931.  
  1932.            would a real time loss because any output would be lost.
  1933.  
  1934.            @dir > list.lst
  1935.  
  1936.            should be more interesting.
  1937.  
  1938.            WARNING  :  If you load a TSR program (resident program) from E!
  1939.       this  will  generate  big  problems.  Generally  E! will see that and
  1940.       issue  a  warning  message  asking  you  to save the edited texts. No
  1941.       program  making  DOS accesses will accept that you load a TSR program
  1942.       during the shell.
  1943.  
  1944.            Before  processing  DOS  commands E! will try to recover as much
  1945.       memory  as  possible  for  your  program  to  run.  While  doing this
  1946.       E!  issues  a  message  :  "Compressing memory...". During idle times
  1947.       (that  is when you don't hit the keyboard) E! continually reorganizes
  1948.       memory  to  have  your text laying as low as possible in memory. This
  1949.       will also contribute to free some space for your programs.
  1950.  
  1951.  
  1952.    2.  E! COMMANDS REFERENCE
  1953.    _________________________
  1954.  
  1955.            E!  commands  are  listed below in alphabetical order. Generally
  1956.       commands  requiring  parameters may be entered without parameters. In
  1957.       this  case  E! will show you the active parameters for this function.
  1958.       This  is  not  true  for the DELAY and SCROLL functions which are not
  1959.       used very frequently.
  1960.  
  1961.            ex  :  MARGINS  entered  without any parameters will display the
  1962.       active margins. So you may edit them and enter the new values.
  1963.  
  1964.  
  1965.       AUTOBACK [yes/no]  (default YES) - ( autob )
  1966.  
  1967.            If AUTOBACK has been set to YES, pressing the BACKSPACE key will
  1968.       delete  the  left  character  and  move the right part of the line to
  1969.       left.  This is the way BACKSPACE normally works. Setting BACKSPACE to
  1970.       NO  will  cause the left character to be deleted but the line remains
  1971.       unchanged, that is the deleted character is replaced with a BLANK. No
  1972.       part of the line will be moved.
  1973.  
  1974.       AUTOCOMP [yes/no]  (default NO) - ( autoc )
  1975.  
  1976.            E!  always  consider the TAB character as a normal character and
  1977.       will  display  it  as  a  graphic  chararacter.  TAB  keystrokes  are
  1978.       actually  emulated.  If the text being loaded contains TAB characters
  1979.       you  may  want  these  TAB's to be expanded. In the same way, you may
  1980.       want  to  save  some  disk  space and convert all blanks sequences to
  1981.       TABs  when  it  is  possible. This is done using AUTOCOMP, EXPAND and
  1982.       COMPRESS.  If  AUTOCOMP  is  set  to YES, files will be automatically
  1983.  
  1984.                                 E!.DOC page 31
  1985.                                     E!.DOC
  1986.  
  1987.       expanded  when  they  are loaded and compressed when they are written
  1988.       to  disk  using  F4. E! uses a tabulation increment of 8 which is the
  1989.       value  used  by  DOS  and  all  ascci  editors.  So  you will have no
  1990.       problems loading files edited with other programs.
  1991.  
  1992.            E!  will  not  compress the blanks if you save the file with F2,
  1993.       SAVE  or  during  automatic  saving.  Only F4 causes the blanks to be
  1994.       compressed.  Naturally,  if  you  already  compressed  the  text with
  1995.       COMPRESS, compression is maintained.
  1996.  
  1997.            Strings between quotes (' or ") will never be compressed. So you
  1998.       will never have problems compressing sources files containing strings
  1999.       to be displayed.
  2000.  
  2001.            Compression  will  save  about  15-20%  of the file size on disk
  2002.       but  there  will  be  a  little  overhead  when the file is loaded or
  2003.       saved.  Compression  will be optimal if text indentation is made with
  2004.       the default increment (8).
  2005.  
  2006.            See COMPRESS and EXPAND.
  2007.  
  2008.            E!.MSG,  E!KEY.HLP and E!.HLP must not be compressed.
  2009.  
  2010.            Be  aware  that certain DOS commands don't know how to deal with
  2011.       tab characters. Hence, it is not recommended to compress batch files,
  2012.       autoexec.bat or config.sys.
  2013.  
  2014.       AUTOTAB [yes/no]  (default NO) - ( autot )
  2015.  
  2016.            AUTOTAB  YES will cause the TAB key to move the cursor under the
  2017.       first  character  of the next word on the previous line. Previous tab
  2018.       positions are ignored until AUTOTAB is set to NO.
  2019.  
  2020.       APPEND [filename]/[devname] - ( app )
  2021.  
  2022.            The  marked  BLOCK  or  GROUP  of  lines is appended to the file
  2023.       or to the DOS device specified (generally the printer).
  2024.  
  2025.       ASCII  char - ( asc )
  2026.  
  2027.            This command will display the ascii code of the character passed
  2028.       as  parameter.  If  no  parameter is passed, the current character is
  2029.       taken  as  parameter  if  there  is  a valid character at the current
  2030.       cursor position.
  2031.  
  2032.       AUTOLIMIT  n   (default 500) - ( autol )
  2033.  
  2034.            n  is the number of keystrokes triggering an autosave. This is a
  2035.       global  value  for all files being edited. Entering 0 will deactivate
  2036.       the  AUTOSAVE  process.  A  non  zero  value  for  AUTOLIMIT will not
  2037.       activate the AUTOSAVE process if it is set to NO.
  2038.  
  2039.       AUTOSAVE  [yes/no]  (default NO) ( autosa )
  2040.  
  2041.            AUTOSAVE  YES  will  activate the AUTOSAVE mode. When the number
  2042.       of  keys  you  pressed reaches the value specified with AUTOLIMIT the
  2043.       text  being  edited  is automatically saved to disk. Keystrokes count
  2044.       is  maintained  for  each  text  separately.  AUTOSAVE  is  a  global
  2045.       command affecting all texts being edited.
  2046.  
  2047.  
  2048.                                 E!.DOC page 32
  2049.                                     E!.DOC
  2050.  
  2051.            If  AUTOSAVE is active, every call to a DOS command or a call to
  2052.       the  E!  "COMPILE"  command will cause every modified text ( M on the
  2053.       status line) to be saved before the command is executed. This is very
  2054.       useful  if you are not convinced that the program you want to execute
  2055.       is  a  safe  program  or  if  you want to be sure to compile the last
  2056.       version of the source file your are editing.
  2057.  
  2058.       AUTOSCROLL [yes/no]  (default NO) - (autosc)
  2059.  
  2060.            When  you  are entering new text you will often find you editing
  2061.       on  the  last  physical  line  of the active window. Since you cannot
  2062.       see  the  text  under  the active line you may feel uncomfortable. If
  2063.       AUTOSCROLL  is  set  to  YES,  as soon as you reach the middle of the
  2064.       active  window  when  you  insert  new  lines,  E! will automatically
  2065.       scroll  one  line  up  when  you  insert a new line. So you will stay
  2066.       editing  on  the  middle of the active window. If you begin inserting
  2067.       past  the  "middle"  line  you  will stay on the line where you began
  2068.       inserting.
  2069.  
  2070.       BAK  [yes/no]   (default NO)  - ( bak )
  2071.  
  2072.            Setting  BAK  to YES will cause E! to generate .BAK copy of your
  2073.       existing  file  each  time  you  save  a  new version. This is a good
  2074.       security  but will consume much disk space. Automatic saving does not
  2075.       generate a .BAK file.
  2076.  
  2077.       CANCEL  [all]|[filename]  - ( can )
  2078.  
  2079.            The  specified  file  or  all  files  submitted to the DOS PRINT
  2080.       spooler  are  deleted  from the PRINT queue. Cancel without parameter
  2081.       deletes the current file from the PRINT queue. See SUBMIT.
  2082.  
  2083.       CHAR  n - ( char )
  2084.  
  2085.            Display the character the ascii code of which is n (decimal).
  2086.  
  2087.       CODE  [yes/no]    (default NO) - ( code )
  2088.  
  2089.            If  CODE  is  set to YES the error code value is displayed along
  2090.       with  error  messages.  This  may be convenient if the error messages
  2091.       file   has  been  lost  or  not  found.  So  you  can  refer  to  the
  2092.       documentation.
  2093.  
  2094.       COMPRESS / EXPAND - ( compr / expan )
  2095.  
  2096.            Even  if  AUTOCOMP  is  set  to  NO,  you  may  want to compress
  2097.       blanks  to  tabs  in  your  text.  Use COMPRESS to do that. Tabs will
  2098.       appear  as  a  normal  control  character. EXPAND will expand tabs to
  2099.       blanks  using  the  DOS  conventions.  The file size indicator on the
  2100.       command  line  will  be updated so you can see what is the benefit of
  2101.       an eventual compression.
  2102.  
  2103.            E!  will  not  compress a string containing quotes. That is, the
  2104.       part  between  quotes  will  not  be  compressed.  To avoid expansion
  2105.       problems, a line of text containing tabs will not be compressed.
  2106.  
  2107.       UNDO n
  2108.  
  2109.            This  command  specifies  the size of the E! UNDO buffer. It may
  2110.       vary  from  256  to  65521 bytes. Both sizes are not recommended. The
  2111.  
  2112.                                 E!.DOC page 33
  2113.                                     E!.DOC
  2114.  
  2115.       default  is  2048  bytes. This command is actually not a real command
  2116.       and you cannot enter it on the command line. You may only use it ONCE
  2117.       in  the MAIN profile (E!.PRO). Any new UNDO command in a profile will
  2118.       be ignored.
  2119.  
  2120.       DEFINE   code - ( def )
  2121.                code string ou [code " string "] ou [code 'string ']
  2122.                code @nmacname
  2123.                code $proname
  2124.                code &ncommandname
  2125.                code functioncode
  2126.  
  2127.            The  DEFINE  command is one of the most important feature of E!.
  2128.       This  is  the  way to redefine the keyboard and to affect any kind of
  2129.       command, keystroke, string, profile, function or macro to a key.
  2130.  
  2131.            You  will  have generally two parameters to enter along with the
  2132.       DEFINE  command. The first parameter is always the keycode of the key
  2133.       you  want  to reassign. These keycodes are found in APPENDIX 2 and in
  2134.       the HELP file (partially for the latter).
  2135.  
  2136.            1.  The  most  simple  command  is the string assignment. Simply
  2137.       enter  the  string  you  want  to  assign  to  the  key as the second
  2138.       parameter  to  the  DEFINE command. The string may be entered without
  2139.       quotes  but in this case leading and trailing blanks will be ignored.
  2140.       You may use simple or double quotes.
  2141.  
  2142.            ex : Def 380 'E! is great'
  2143.  
  2144.            will affect the specified string to Alt 5.
  2145.  
  2146.            2. Affecting a macro (see MACROS) to a key is also quite simple.
  2147.  
  2148.            ex : Def 380 @macname.mac
  2149.  
  2150.            will  assign  the macro saved in the MACNAME.MAC file to the Alt
  2151.       5  key.  Each time you will press Alt 5 this macro will be loaded and
  2152.       executed.  The  active  macro  is temporarily saved and restored when
  2153.       the  called  macro is terminated. The .MAC extension is a default. So
  2154.       you don't need to specify it.
  2155.  
  2156.            3.  To  affect a profile to a key juste change the "@" character
  2157.       to a "$".
  2158.  
  2159.            ex : Def 380 $proname
  2160.  
  2161.            will  assign  the profile PRONAME.PRO to the Alt 5 key. When you
  2162.       will  press  Alt  5,  PRONAME.PRO  will  be  loaded  and  E!  will be
  2163.       reconfigured  using  this  new  profile.  This will be very useful if
  2164.       you  have  to switch between a program and text file. Using judicious
  2165.       profiles will help you to quickly change the editing context.
  2166.  
  2167.            4.  Using the same method you will affect any command (including
  2168.       DOS commands) to a key :
  2169.  
  2170.            ex : Def 378 &edit myfile.e!
  2171.  
  2172.            will cause MYFILE.E! to be edited each time you press Alt 3.
  2173.  
  2174.            5.  DEFINE  also  allows  you to dinamically redefine the entire
  2175.  
  2176.                                 E!.DOC page 34
  2177.                                     E!.DOC
  2178.  
  2179.       keyboard if you want :
  2180.  
  2181.            Define keycode functioncode
  2182.  
  2183.            ex : Def 389 3
  2184.  
  2185.  
  2186.            will assign the "Align Text" function (normally assigned to Ctrl
  2187.       A)  to  the  F11  key  if  you have an enhanced keyboard. Ctrl A will
  2188.       always  trigger the same function but it is now available for another
  2189.       job. Functions codes are described in APPENDIX 2.
  2190.  
  2191.            E!  has  a  more  easier  way to reassign keystrokes. Just enter
  2192.       DEFINE  (def)  without  any  parameter  on  the command line. E! will
  2193.       prompt you to hit :
  2194.  
  2195.            1. the target key for the reassignment
  2196.  
  2197.            2. the default key triggering the function you want to reassign.
  2198.  
  2199.            Example:
  2200.  
  2201.            Enter "def" on the command line.
  2202.  
  2203.            Hit F11 (this key is normally not affected).
  2204.            (E! will display 389 on the command line)
  2205.  
  2206.            Hit Ctrl A ("align text" function)
  2207.            (E! will display 1 on the command line)
  2208.  
  2209.            Hit Enter.
  2210.  
  2211.            That's all. You will not have to remember keycodes and functions
  2212.       codes. This definition may be edited before you hit ENTER. So you can
  2213.       change the second code to any string.
  2214.  
  2215.            NOTE  :  You  may have problems with DOS 3.3. Certain keystrokes
  2216.       are  no  more  recognized  with some keyboard drivers (FR and GR). If
  2217.       this  is  the case and if you don't need the CODE PAGE switching, you
  2218.       may use a keyboard driver from a previous DOS. This works very fine.
  2219.  
  2220.            6.  Using DEFINE with only the first parameter will reaffect the
  2221.       default function to the specified key.
  2222.  
  2223.            ex : Def 378
  2224.  
  2225.            will  cause  Alt  3 to trigger the default function which is the
  2226.       text marking.
  2227.  
  2228.            Normally  you  will  use DEFINE mainly in your PROFILES. You may
  2229.       also  use  the  following  tip  :  use  the same key in two different
  2230.       profiles  to  toggle  between  them.  You  may  have  a  main profile
  2231.       designed  for  programming  containing a DEFINE command to assign the
  2232.       EDITING  PROFILE  loading  to  a  key.  This EDITING profile may also
  2233.       contain  a  command  assigning  the  MAIN PROFILE loading to the same
  2234.       key. So this key will toggle between the two profiles.
  2235.  
  2236.       DELAY  n    (default 850 - PC AT value)
  2237.  
  2238.            DELAY  specifies how long you have to press on a SHIFT key (Alt,
  2239.  
  2240.                                 E!.DOC page 35
  2241.                                     E!.DOC
  2242.  
  2243.       Ctrl,  Shift)  to  display  the secondary help lines corresponding to
  2244.       that shift key. 0 will deactivate the secondary help lines. The upper
  2245.       limit for DELAY is 32767. Use it only if you are VERY patient.
  2246.  
  2247.       DENUMBER  (denum)
  2248.  
  2249.            If  you  used  the  NUMBER  command,  DENUMber  will delete line
  2250.       numbering  at the beginning of each line. WARNING : if this numbering
  2251.       has been altered, E! may delete some valid characters. See NUMBER.
  2252.  
  2253.       DRAW [1]|.......|[8] or empty entry (default 1) - ( draw )
  2254.  
  2255.            See DRAW chapter.
  2256.  
  2257.       DOS
  2258.  
  2259.            This  command  simply  opens a DOS session. Enter EXIT to return
  2260.       to  E!.  This  is  not  the more simple way to run DOS commands since
  2261.       you  may  enter  these  commands directly on the E! command line. DOS
  2262.       is here for convenience if you really need to "escape" to DOS.
  2263.  
  2264.            See also AUTOSAVE.
  2265.  
  2266.       EDIT  [filespec1] [filespec2]...[filespecn] - ( edit )
  2267.  
  2268.            See GETTING STARTED.
  2269.  
  2270.            NOTE - you have to be aware of two things :
  2271.  
  2272.            -  Before  loading  a file E! controls if there is enough memory
  2273.       to  keep  it  into  memory. If not, the file is simply not loaded and
  2274.       an error message is issued.
  2275.  
  2276.            -  Even  if the first control (which cannot be very accurate) is
  2277.       ok,  a  control  is made for each line loaded. This is a security for
  2278.       your files.
  2279.  
  2280.       EPROFILE - ( epro )
  2281.  
  2282.            Edit the E! main profile : E!.PRO.
  2283.  
  2284.       EGA-VGA  [yes/no]   (default YES)
  2285.  
  2286.            This  command  allows a 35/43/50 lines display mode when you hit
  2287.       Ctrl  G.  Normally  you  need  not  to  use  this  command  since  E!
  2288.       automatically   detects   if   you  can  benefit  from  these  modes.
  2289.       Unfortunately,  some  multi-standard  display  adapters do not behave
  2290.       very  well  and  you  may  experiment  problems.  So  this command is
  2291.       available to "manually" control these display modes.
  2292.  
  2293.       EMSG
  2294.  
  2295.            Edit  the  E!.MSG  file.  So  you  can  freely  modify the error
  2296.       messages  and  help  lines  if you made some reassignments. The error
  2297.       messages lines order MUST not be changed for messages consistency.
  2298.  
  2299.       PUT filename - ( put )
  2300.  
  2301.            This command will cause the marked BLOCK or GROUP of lines to be
  2302.       written  in  the  specified  file wich may be a DOS system file (PRN,
  2303.  
  2304.                                 E!.DOC page 36
  2305.                                     E!.DOC
  2306.  
  2307.       LPT1,  etc...).  Any  existing  file  is  overwritten.  If WARNING is
  2308.       active, E! will issue a warning message.
  2309.  
  2310.       PRINT  /code1/code2/code3/... - ( prin )
  2311.  
  2312.            This  is  the  way  to  print the current text. The printer will
  2313.       first  be  initialized  with the specified code1....coden ascii codes
  2314.       (decimal).
  2315.  
  2316.            ex : PRINT /27/69 (ESC E)
  2317.  
  2318.            will  print  the  current  file  with  a  near-letter-quality on
  2319.       an IBM compatible printer.
  2320.  
  2321.            This way of printing is not buffered.  To make a buffered print,
  2322.       use  the  SUBMIT  command.  Naturally, if  you  have  a print spooler
  2323.       installed,  the  print  will  be  buffered. Hit ESCAPE at any time to
  2324.       cancel the print.
  2325.  
  2326.       GET filename - ( get )
  2327.  
  2328.            GET will load the specified file at the cursor position.
  2329.  
  2330.       LIST  [path] - ( list )
  2331.  
  2332.            LIST  is  a  very convenient command if you use it combined with
  2333.       Ctrl  L  (edit  current word as a file), Ctrl Z (list current word as
  2334.       a  directory),  Ctrl  X (execute cuurent line as a DOS command). LIST
  2335.       without  any  parameter  will  display the current directory in a new
  2336.       edit  buffer.  You  may  also specify a path and a file specification
  2337.       if needed.
  2338.  
  2339.            You  may want to use Alt G to sort the displayed list. Each LIST
  2340.       file  is named LIST.nnn. nnn begins with 000 and is incremented along
  2341.       your  E!  session. These files are erased as soon as they are created
  2342.       and displayed but you may save them if you want.
  2343.  
  2344.            Note  1  :  In  a  LIST "." and ".." always point to the current
  2345.       directory  and  the  current  directory  parent  directory.  Not  the
  2346.       directory being displayed.
  2347.  
  2348.            Note  2  :  LIST.xxx  will be also listed if you are listing the
  2349.       E! directory (that is the directory you specified with SET E!=....).
  2350.  
  2351.       LOG [yes/no] - (log)
  2352.  
  2353.            If  LOG  is  set to YES, a LOG file will be written each time E!
  2354.       exits.  This  allows  E!  to  reload  the  previous  a session and to
  2355.       position  the  cursor  at  the  last  editing  position in the edited
  2356.       files.
  2357.  
  2358.       MACRO  [macname] - ( mac )
  2359.  
  2360.            Load and execute the specified macro. (See MACROS).
  2361.  
  2362.       MARGINS  [left right paragraph] - ( marg )
  2363.  
  2364.            MARGINS  without  parameter displays the active margins. You may
  2365.       edit  them  and  reenter  the  new  command or directly enter the new
  2366.       margins  values.  Margins  are not used by E! if the WORDWRAP mode is
  2367.  
  2368.                                 E!.DOC page 37
  2369.                                     E!.DOC
  2370.  
  2371.       not  activated.  The  paragraph  margin value may be smaller than the
  2372.       left margin.
  2373.  
  2374.       MEMORY - ( mem )
  2375.  
  2376.            This  command  displays  the  amount  of  memory  available  for
  2377.       editing.
  2378.  
  2379.       SNOW [yes/no]  (default is automatic detection) - ( snow )
  2380.  
  2381.            Setting  SNOW  to  YES  will  force  E!  to synchronize with the
  2382.       display  adapter  to  update the screen. This is generally not needed
  2383.       unless  you have a CGA adapter. Usually E! will detect if SNOW YES is
  2384.       needed.  If  your  adapter  is not compatible you may want to control
  2385.       this manually.
  2386.  
  2387.       NMACRO macname - ( nmac )
  2388.  
  2389.            This  command  works  almost the same as MACRO but the specified
  2390.       macro  is  only  loaded and not executed. It becomes the active macro
  2391.       and  you  can  run it with Ctrl P. The previous active macro is saved
  2392.       and can be restored with Ctrl Q.
  2393.  
  2394.       NAME filename - ( nam )
  2395.  
  2396.            This is a simple command to rename the current text.
  2397.  
  2398.       NUMBER
  2399.  
  2400.            NUMBER  uses  no  parameters. It simply adds a line numbering to
  2401.       the  text.  That  is, the line number is REALLY inserted in your text
  2402.       and  not  only displayed. This will be useful to BASIC programmers or
  2403.       if  you  want  a  listing  with  line  numbers. See also DENUMber and
  2404.       RENUMber.
  2405.  
  2406.       PAUSE  [yes/no]
  2407.  
  2408.            If  PAUSE  is  set  to  YES, E! will wait for a keystroke before
  2409.       returning  from  DOS.  If  not,  there  is no wait and E! will return
  2410.       immediatly after executing the command.
  2411.  
  2412.       PROFILE  proname - ( pro )
  2413.  
  2414.            This  is  the  command  used  to reconfigure E! using a specific
  2415.       profile (generally different from the main profile). See PROFILES.
  2416.  
  2417.       QUIT - ( quit )
  2418.  
  2419.            Same as F3.
  2420.  
  2421.       QQUIT
  2422.  
  2423.            QQUIT  will  cause  the  program to terminate immediatly after a
  2424.       last  warning  message. No file will be saved, initial video mode, if
  2425.       changed, is not restored and no LOG file is created or updated. It is
  2426.       not recommended to assign this command to a key.
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.                                 E!.DOC page 38
  2433.                                     E!.DOC
  2434.  
  2435.       RENUMBER
  2436.  
  2437.            If  the  line  numbering  created  with NUMBER has been altered,
  2438.       RENUM will regenerate it (e.g. you moved some lines).
  2439.  
  2440.       SAVE  [filename] - ( save )
  2441.  
  2442.            SAVE  without  any  filename  is  the  same  as F2. If you add a
  2443.       filename  to  the  command,  the  current file will be saved with the
  2444.       name you specified.
  2445.  
  2446.       SCROLL  n - ( scrol )
  2447.  
  2448.            n  is the amount of columns you want to be scrolled when you use
  2449.       Alt F3 or Alt F4.
  2450.  
  2451.       SELECTION - ( sel )
  2452.  
  2453.            This  command  allows  you to enter any character at the current
  2454.       cursor  position  (assuming  this  character  is  not defined on your
  2455.       keyboard).  This will be useful to enter characters from the extended
  2456.       ascii  set. Enter SELection on the E! command line. Use the direction
  2457.       keys  (with  or  without  Ctrl)  to select a character. The screen is
  2458.       permanently  updated  with  the  current selection so you can see the
  2459.       result  of  your selection before the character is really inserted in
  2460.       your text. Confirm with ENTER or cancel with ESCAPE.
  2461.  
  2462.       SMACRO  macname - ( smac )
  2463.  
  2464.            This  command  saves the active macro (defined with Ctrl R) in a
  2465.       file  named  macname.  The .MAC extension is the default, so you need
  2466.       not  to  specify an extension. The macro is saved in the path defined
  2467.       with SET E!=... . See MACROS.
  2468.       SUBMIT - ( subm )
  2469.  
  2470.            This  command  assumes you have installed the DOS PRINT spooler.
  2471.       If  not, an error message is issued. SUBMIT entered without parameter
  2472.       will  enter the current text in the PRINT queue. Since PRINT works on
  2473.       a  file,  the  current  text  is  automatically  saved  before  being
  2474.       submitted  to  PRINT. You will then return to E! and the text will be
  2475.       printed as a background task.
  2476.  
  2477.            PLEASE  DO  NOT  install  PRINT  from  E!.  PRINT  is a resident
  2478.       program  and  will  cause E! to crash if you enter the *PRINT command
  2479.       from the E! command line or from a DOS session initiated from E!.
  2480.  
  2481.            To cancel a PRINT use the CANCEL command.
  2482.  
  2483.       STRIP - (strip)
  2484.  
  2485.            STRIP  causes  the  heighth  bit  of  all characters of the text
  2486.       being  edited  to  be  set  to 0. This is very useful if you loaded a
  2487.       text  edited  with  WORDSTAR (trademark). The text will be immediatly
  2488.       made  readable.  Naturally  all  characters belonging to extended IBM
  2489.       ascii  character  set will also be stripped (so be careful if you are
  2490.       DRAWING).
  2491.  
  2492.       TABS  [yes/no]   (default no)
  2493.  
  2494.            TABS  YES  tells  E!  to  display a ruler showing all active TAB
  2495.  
  2496.                                 E!.DOC page 39
  2497.                                     E!.DOC
  2498.  
  2499.       positions.  This  ruler  is  updated when you scroll the text towards
  2500.       left or right or when you add or delete a tab position.
  2501.  
  2502.            TABS does not mean the same when you use it in a PROFILE.
  2503.  
  2504.       LOCK xxx
  2505.  
  2506.            If  you  ask  E!  to  load a non text file, it will generally be
  2507.       aware  of  that  and  will issue a warning message. Though it is more
  2508.       convenient  not  to  load  such files. As a default E! will refuse to
  2509.       load any file with a .COM, .EXE, .BIN, .OBJ extension. You may add up
  2510.       to  21  extensions  to this list using the LOCK command. This will be
  2511.       normally  specified  in  your PROFILE but you can use this command on
  2512.       the command line for temporary needs.
  2513.  
  2514.            Ex : Lock cpi
  2515.  
  2516.            will  preclude  E! to load any .CPI file (in this case code page
  2517.       files of DOS 3.3).
  2518.  
  2519.            If you used LOCK judiciously, you will be able to edit all files
  2520.       in a directory that are text files entering E! *.*.
  2521.  
  2522.       WARNING [yes/no] (default yes) - ( warn )
  2523.  
  2524.            A  warning message is issued when you overwrite an existing file
  2525.       only if WARNING is set to YES which is the default value.
  2526.  
  2527.       [+/-] n
  2528.  
  2529.            Moves  the  cursor  to  line n. If you use "+" or "-" the cursor
  2530.       will be moved n lines forwards or backwards.
  2531.  
  2532.  
  2533.       SEARCH / REPLACE COMMANDS
  2534.  
  2535.       [!]|[=]/string1/[string2/][*][c][-][b][d]
  2536.  
  2537.               SEARCH ONLY :
  2538.  
  2539.               /string1/ : Searches the string "string1".
  2540.                           If ! (optional) is used, the string delimiter
  2541.                           may be different from "/".
  2542.               !%string1%  (convenient to search a string imbedding a "/")
  2543.  
  2544.               options   : c --> makes the search case sensitive.
  2545.                           - --> initiates a backwards search.
  2546.                           b --> limits the search area to the marked BLOCK
  2547.                                 or GROUP of LINES. Global search if no
  2548.                                 marked area exists.
  2549.                           d --> deactivates default options specified in
  2550.                                 the active PROFILE. See PROFILES. This
  2551.                                 option may be combined with the others.
  2552.  
  2553.               Ctrl S    : repeat search.
  2554.  
  2555.               Alt 0     : search the current word in the remaining part
  2556.                           of the text. The word may be delimited with
  2557.                           blanks or any quote or punctuation sign
  2558.                           (including programmation symbols).
  2559.  
  2560.                                 E!.DOC page 40
  2561.                                     E!.DOC
  2562.  
  2563.  
  2564.  
  2565.               SEARCH AND REPLACE :
  2566.  
  2567.               =/string1/string2/[options]
  2568.  
  2569.                           The "=" sign is mandatory. String1 is the
  2570.                           searched string and string2 is the replacement
  2571.                           string. If you use the "*" option, replacements
  2572.                           are made without any confirmation prompt. If
  2573.                           not, you will be prompted to replace or not
  2574.                           (Y/N), Continue(C - same as *) or to
  2575.                           terminate the search. See below.
  2576.  
  2577.                           You may use b,c,d and - options.
  2578.  
  2579.            Here  is  the detailed answers you can make to the E! SEARCH and
  2580.       REPLACE prompt:
  2581.  
  2582.            -  YES  (Y) : the string will be replaced and E! will search the
  2583.       next occurence of string1.
  2584.  
  2585.            -  NO  (N) : the found string will be skipped (not replaced) and
  2586.       E! will search the next one.
  2587.  
  2588.            -  CONTINUE  (C)  :  the  string  will be replaced and all other
  2589.       occurences will be replaced without any prompt as if you entred the *
  2590.       option.
  2591.  
  2592.            -  QUIT  (Q)  :  the  string  is  not replaced and the search is
  2593.       terminated.
  2594.  
  2595.            Using   Ctrl  S  always  initializes  a  simple  search  without
  2596.       replacement.
  2597.  
  2598.            If  the  b option (block limited search) is not used, the search
  2599.       will  always  begin at the current cursor position when you enter the
  2600.       search  command.  On  the  contrary,  using  Ctrl  S  to  repeat  the
  2601.       process  will  begin  the search at the last "found" position even if
  2602.       you  moved  the cursor in the mean time. If you really want to repeat
  2603.       the search from the CURRENT position, you will have to reinitiate the
  2604.       search   variables  hitting  Ctrl  V.  Search  variables  are  always
  2605.       initialized when :
  2606.  
  2607.            - you switch to another text
  2608.  
  2609.            - you load a new file
  2610.  
  2611.            So  the  search  will not necessarily begin at the first line of
  2612.       text.  To  ensure  the search will be global, use the b option (block
  2613.       limited  search)  without  marking any area or move the cursor to the
  2614.       text begin and hit Ctrl V.
  2615.  
  2616.            The  E!  search  process is circular. That is, when it finds the
  2617.       last  ocurrence  of  a  string  in the text, E! will display a search
  2618.       end  message  (Search  Terminated) if you hit Ctrl S. If you hit Ctrl
  2619.       S  again,  E!  will  found  the  first search string occurence again.
  2620.       This  will  not be necessary the first occurence of the string in the
  2621.       whole  text  but  the  first  occurence  of the string from the start
  2622.       point of the search when it was initialized.
  2623.  
  2624.                                 E!.DOC page 41
  2625.                                     E!.DOC
  2626.  
  2627.  
  2628.            You  may  define default search options in your profiles. The E!
  2629.       default search options are :
  2630.  
  2631.            - not case sensitive
  2632.  
  2633.            - forwards
  2634.  
  2635.            - not limited to a block
  2636.  
  2637.            - prompts when replacing
  2638.  
  2639.            Only insert the following line in your profile:
  2640.  
  2641.            SEARCH       options
  2642.  
  2643.            the  options  string  being  made up of any option character (b,
  2644.       c,  *,  -).
  2645.  
  2646.            example:
  2647.  
  2648.            SEARCH       *c
  2649.  
  2650.            Remember  to  use  "d"  to deactivate the default search options
  2651.       from the command line.
  2652.  
  2653.  
  2654.  
  2655.  
  2656.  
  2657.  
  2658.  
  2659.  
  2660.  
  2661.  
  2662.  
  2663.  
  2664.  
  2665.  
  2666.  
  2667.  
  2668.  
  2669.  
  2670.  
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.  
  2677.  
  2678.  
  2679.  
  2680.  
  2681.  
  2682.  
  2683.  
  2684.  
  2685.  
  2686.  
  2687.  
  2688.                                 E!.DOC page 42
  2689.                                     E!.DOC
  2690.  
  2691. L. MACROS
  2692. _________
  2693.  
  2694.            You  will  often  find you typing identical keystrokes sequences
  2695.       again   and   again.   E!  allows  you  to  record  these  keystrokes
  2696.       (temporarily  or  permanently)  and to replay them each time they are
  2697.       needed.  These  keystrokes sequences are called macros. You will show
  2698.       E!  what  you  want  to  do  only  once and E! will repeat the job on
  2699.       request.
  2700.  
  2701.       TEMPORARY RECORDING
  2702.  
  2703.            To  record a sequence you just need to hit Ctrl R (ecord) before
  2704.       the  sequence begins. Use any command or function you have to use and
  2705.       hit  Ctrl  R  again  when your sequence is completed. E! will issue a
  2706.       message  as  the  recording  begins and ends. If you hit Ctrl U while
  2707.       recording, it is canceled.
  2708.  
  2709.            To replay the sequence, hit Ctrl P(lay).
  2710.  
  2711.            You  have  just defined the active macro. This macro can now be
  2712.       saved  in a file. If you record a new macro, the previous one will be
  2713.       saved in a buffer. Ctrl Q makes the saved macro active again.
  2714.  
  2715.            A macro may contain 253 keystrokes.
  2716.  
  2717.       RECORDING PERMANENTLY
  2718.  
  2719.            If  you defined a macro of general interest and if you think you
  2720.       will reuse it later, it will be useful to save it in a file for later
  2721.       use. SMACRO macname will do the job. The .MAC extension is a default,
  2722.       so  you  need  not give an extension. The macro will be stored in the
  2723.       directory you defined with SET E!=.... or in the current directory if
  2724.       you  defined  no  E!  directory. You may specify a path for the macro
  2725.       name.
  2726.  
  2727.            To  replay  the macro, just enter MACro macname (no extension if
  2728.       you choose the default) on the E! command line. The current macro, if
  2729.       any,  will  be  saved  and  macname will be executed. Then the active
  2730.       macro  will  be restored. Playing a macro with the macro command does
  2731.       not make it the active macro.
  2732.  
  2733.            The  NMACro  command will only load the specified macro and make
  2734.       it  the  active macro. To replay it, just enter Ctrl P. Use Ctrl Q to
  2735.       restore the previous one.
  2736.  
  2737.            As stated above, the DEFINE command allows you to assign a macro
  2738.       to  a  key  either  on  the E! command line or in you profile(s). See
  2739.       DEFINE.
  2740.  
  2741.            When you record the macro, one of the recorded keystrokes may be
  2742.       a  key  to which another macro was assigned. This means nested macros
  2743.       are  allowed.  There is no limit to the depth level of nested macros.
  2744.       Well,  it  is  not highly recommended to nest too many macros but you
  2745.       can  do  it.  Each nested macro uses 514 bytes of memory. There is no
  2746.       simple  way  to  control  if a macro is calling itself. Doing so will
  2747.       likely cause E! to crash!
  2748.  
  2749.            To  fully  control  the  execution of the macro E! will stop its
  2750.       execution  each  time  a  "non  neutral"  message  is  issued  during
  2751.  
  2752.                                 E!.DOC page 43
  2753.                                     E!.DOC
  2754.  
  2755.       execution.  For  example,  if  your  macro  is trying to move a block
  2756.       and  no  marked  block  is  here,  E!  will stop macro execution. Non
  2757.       neutral messages are listed in APPENDIX 1.
  2758.  
  2759.            If  you  recorded a complex macro you may want to continue macro
  2760.       execution.  This  will  happen  if  you inserted a "CONTINUE MARK" in
  2761.       your  macro  using  Alt  Q. If a macro is stopped after a non neutral
  2762.       message,  E!  will  look  the  macro for a "CONTINUE MARK". If one is
  2763.       found, macro execution will resume after the mark.
  2764.  
  2765.            If  your  macro  executes  E! functions requesting a user entry,
  2766.       the  entry  you  made  while  recording the macro is also "replayed".
  2767.       These  functions  are  Ctrl D (repeat character), Alt G (block sort),
  2768.        Alt H (draw box),  Alt F (fill block).
  2769.  
  2770.            E! also records the mode change, that is, you may toggle between
  2771.       EDIT  mode  and  COMMAND  mode  while recording a macro. All commands
  2772.       issued on the E! command line are recorded.
  2773.  
  2774.            Here  is  a  very  simple  example  of SEARCH and REPLACE macro.
  2775.       Assuming  you  are programming in Pascal and you want to convert some
  2776.       Pascal   keywords  to  uppercase  in  your  text  automatically.  The
  2777.       following will be the typical way of achieving this goal :
  2778.  
  2779.               Ctrl R     (begin macro recording)
  2780.               Ctrl Home  (move to text begin)
  2781.               Ctrl Home
  2782.               Escape     (command mode)
  2783.               =/begin/BEGIN/*
  2784.               ENTER
  2785.               Alt Q      (continue mark)
  2786.               Ctrl Home
  2787.               Ctrl Home
  2788.               =/end/END/*
  2789.               ENTER
  2790.               etc...
  2791.               Ctrl R     (end macro)
  2792.  
  2793.            Another   example:   you  want  to  delete  all  lines  containg
  2794.       "string1":
  2795.  
  2796.               Ctrl Home    (preparing the macro)
  2797.               Ctrl Home
  2798.               Esc
  2799.               /C1/
  2800.               ENTER
  2801.               Ctrl BackSpace
  2802.  
  2803.               Ctrl R     (begin macro recording)
  2804.               Ctrl S
  2805.               Ctrl BackSpace
  2806.               Ctrl R     (end macro)
  2807.  
  2808.            Hit Ctrl P until you get a "Search terminated" message.
  2809.  
  2810.            Please notice the following :
  2811.  
  2812.            1.  E!  records the active mode (EDIT or COMMAND) when you begin
  2813.       recording.  It will be automatically restored as you replay the macro
  2814.       EVEN  IF IT IS A NESTED MACRO. So don't care about being in the right
  2815.  
  2816.                                 E!.DOC page 44
  2817.                                     E!.DOC
  2818.  
  2819.       mode when you hit Ctrl P.
  2820.  
  2821.            2.  On the contrary the active mode when the macro terminates is
  2822.       the mode that was active when you terminated recording.
  2823.  
  2824.            3.  E!  commands  executed  thru a macro are not recorded in the
  2825.       circular  command  list. It will save some precious memory. So please
  2826.       does  not  use the up and down direction keys when you record a macro
  2827.       you  plan  to  save  to  disk  : the editing context will likely have
  2828.       changed  and  your  macro  will  not  execute safely because you will
  2829.       not recall the right commands.
  2830.  
  2831.  
  2832.  
  2833.  
  2834.  
  2835.  
  2836.  
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.  
  2843.  
  2844.  
  2845.  
  2846.  
  2847.  
  2848.  
  2849.  
  2850.  
  2851.  
  2852.  
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.  
  2879.  
  2880.                                 E!.DOC page 45
  2881.                                     E!.DOC
  2882.  
  2883. M. PROFILES
  2884. ___________
  2885.  
  2886.            PROFILES  are  a very convenient way to configure or reconfigure
  2887.       E!  dynamically.  E!  is  always  configured  with  the  main PROFILE
  2888.       (E!.PRO)  when  it  is  loaded. You will reconfigure it while editing
  2889.       with any .PRO file.
  2890.  
  2891.            The  main profile is searched first in the current directory and
  2892.       then  in  E! directory (SET E!=...). You may want to design different
  2893.       "main  profiles" depending on the directory you are working in. If no
  2894.       E!.PRO file is found, default options are maintained.
  2895.  
  2896.            Generally  PROFILE  commands are similar or even identical to E!
  2897.       commands  but  it  will  not  be always the case. The "dummy" profile
  2898.       delivered with E! shows you all possible commands in a E! profile. To
  2899.       activate  them  you  will  have  to remove the double asterisk at the
  2900.       beginning  of  the  line  (** - all text after the double asterisk is
  2901.       ignored). These commands are also listed below.
  2902.  
  2903.            Shortcuts are not allowed in a profile. But the profile commands
  2904.       interpreter is not case sensitive.
  2905.  
  2906.            WARNING  :  when  you  load  a  new  profile  "over"  the active
  2907.       profile,  only  the  profile  commands  used  in  the new profile are
  2908.       rerun.  That  is,  all  other  options are not reset to their default
  2909.       values.
  2910.  
  2911.  
  2912.       TYPEMATIC
  2913.       *********
  2914.  
  2915.            On  computers  using  a  recent  AT BIOS (after 11/15/85), on PC
  2916.       XT 286 and PS/2 you can specify typematic parameters:
  2917.  
  2918.            1.  the  key  repeat  rate  :  from 2 to 30 characters/sec. This
  2919.       controls  how quickly a key will be repeated if it his held down long
  2920.       enough.
  2921.  
  2922.            2. the delay repeat value, one from the following :
  2923.  
  2924.               250, 500, 750 or 1000 ms.
  2925.  
  2926.            This  controls  how  long  a  key  must  be  held down before it
  2927.       repeats.
  2928.  
  2929.            To control the typematic parameters insert the following line in
  2930.       your profile :
  2931.  
  2932.            Typematic  n1(key repeat value)  n2(delay repeat value)
  2933.  
  2934.            ex:
  2935.  
  2936.            Typematic  30  750
  2937.  
  2938.            If  the  values  specified  are  out  of  range, nothing will be
  2939.       changed.  Default  BIOS  settings  are  n1  =  10 and n2 = 500. Using
  2940.       typematic  on  a  computer  without extended keyboard bios will do no
  2941.       harm. E! resets defaults before exiting.
  2942.  
  2943.  
  2944.                                 E!.DOC page 46
  2945.                                     E!.DOC
  2946.  
  2947.            Non integer values are allowed but are of low interest.
  2948.  
  2949.            This   function   does   not   disable   the   "emulated  cursor
  2950.       acceleration"  function  (SHIFT  +  arrows). Remember the accelerated
  2951.       cursor function does not work on non strictly compatible machines.
  2952.  
  2953.  
  2954.  
  2955.  
  2956.  
  2957.  
  2958.  
  2959.  
  2960.  
  2961.  
  2962.  
  2963.  
  2964.  
  2965.  
  2966.  
  2967.  
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  
  2975.  
  2976.  
  2977.  
  2978.  
  2979.  
  2980.  
  2981.  
  2982.  
  2983.  
  2984.  
  2985.  
  2986.  
  2987.  
  2988.  
  2989.  
  2990.  
  2991.  
  2992.  
  2993.  
  2994.  
  2995.  
  2996.  
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007.  
  3008.                                 E!.DOC page 47
  3009.                                     E!.DOC
  3010.  
  3011.                             PROFILE's COMMANDS
  3012.                             ******************
  3013.  
  3014.  
  3015.               "See  above"  means the command has the same effect than
  3016.               on the E! command line.
  3017.  
  3018.               Please enter one command per line.
  3019.  
  3020.  
  3021.   EGA-VGA     Yes/No                          default : Yes
  3022.  
  3023.               Don't  use  this  option  unless there is a problem with
  3024.               your display adapter. See above.
  3025.  
  3026.   35LINES     Yes/No                          default : No
  3027.  
  3028.               Replaces  the  43  or 50 lines mode with a more readable
  3029.               35 lines mode. See above.
  3030.  
  3031.   SOUND       Yes/No                          default : Yes
  3032.  
  3033.               Allows E! to beep all non neutral error messages.
  3034.  
  3035.   AUTOBACK    Yes/No                          default : Yes
  3036.  
  3037.               See above.
  3038.  
  3039.   AUTOFORMAT  yes/no                          default : no
  3040.  
  3041.               See above.
  3042.  
  3043.   AUTOCOMP    yes/no                          default : no
  3044.  
  3045.               See above.
  3046.  
  3047.   AUTOSAVE    yes/no                          default : no
  3048.  
  3049.               See above.
  3050.  
  3051.   AUTOTAB     yes/no                          default : no
  3052.  
  3053.               See above.
  3054.  
  3055.   AUTOLIMIT   n                               default : 500
  3056.  
  3057.               See above.
  3058.  
  3059.   BAK         yes/no                          default : no
  3060.  
  3061.               See above.
  3062.  
  3063.   SPACES      yes/no                          default : no
  3064.  
  3065.               SPACES  YES  will cause E! to remove all trailing blanks
  3066.               automatically when saving a file.
  3067.  
  3068.   CODE        yes/no                          default : no
  3069.  
  3070.               See above.
  3071.  
  3072.                                 E!.DOC page 48
  3073.                                     E!.DOC
  3074.  
  3075.  
  3076.   COMPILE     extension    compiler command line
  3077.                            ($$ = filename without extension)
  3078.  
  3079.               Compilers   definitions   will  be  inserted  with  this
  3080.               command. See "Programming support" below.
  3081.  
  3082.   UNDO        n                               default : 2048
  3083.  
  3084.               See above.
  3085.  
  3086.   DELAY       n                               default : 850
  3087.  
  3088.               See above.
  3089.  
  3090.   EOL         [CRLF|LFCR|LF|CR]               default : CRLF
  3091.  
  3092.               Specify  the  End  of Line termination sequence. This is
  3093.               normally  a  CRLF  sequence  but some programs use other
  3094.               conventions.  PLEASE  DON'T  USE THIS COMMAND UNLESS YOU
  3095.               REALLY  NEED  IT.  SAVING  A  FILE  WITH  AN EOL SETTING
  3096.               DIFFERENT FROM CRLF OR CR WILL MAKE IT NON LOADABLE WITH
  3097.               E!.
  3098.  
  3099.   ADDONLAST   yes/no                          default : yes
  3100.  
  3101.               ADDONLAST  YES  allows  E! to insert a new line when you
  3102.               hit  the  down arrow whith the cursor laying on the last
  3103.               line of the current text.
  3104.  
  3105.   IBM101T     yes/no                          default : no
  3106.  
  3107.               E!  does  not  recognize  the  IBM enhanced keyboard (or
  3108.               equivalent)  unless  you  tell  him  to  do  so. Setting
  3109.               IBM101T  to  YES  with  non enhanced keyboard will cause
  3110.               the program to crash! (machine hang on loading).
  3111.  
  3112.   INSERT      yes/no                          default : no
  3113.  
  3114.               This defines the Insert key state when E! is loaded.
  3115.  
  3116.   PRTINIT     /n1/n2/n3...
  3117.  
  3118.               This   will   set   the   default   values  for  printer
  3119.               initialization  when  you  use  the PRINT command. These
  3120.               values  are  not  sent to the printer if you specify new
  3121.               values on the E! command lines. See above.
  3122.  
  3123.   JUSTIFY     yes/no                          default : no
  3124.  
  3125.               Set  the  JUSTIFICATION  mode  toggle. This will have no
  3126.               effect in the main profile. See above.
  3127.  
  3128.   LOG         yes/no                          default : no
  3129.  
  3130.               See above.
  3131.  
  3132.   MARGINS     left right paragraph            default : 10 70 15
  3133.  
  3134.               See above.
  3135.  
  3136.                                 E!.DOC page 49
  3137.                                     E!.DOC
  3138.  
  3139.  
  3140.   PAUSE       yes/no                          default : yes
  3141.  
  3142.               See above.
  3143.  
  3144.   SNOW        yes/no                          default : yes
  3145.  
  3146.               See above.
  3147.  
  3148.   SCROLL      n                               default : 40
  3149.  
  3150.               See above.
  3151.  
  3152.   TABS        n1 n2 n3 ...
  3153.  
  3154.               Define   new  tab  positions  and  remove  all  previous
  3155.               registered positions.
  3156.  
  3157.   TYPEMATIC   speed delay
  3158.  
  3159.               See above.
  3160.  
  3161.   LOCK        xxx                             default : COM EXE BIN OBJ
  3162.  
  3163.               See above.
  3164.  
  3165.   WARNING     yes/no                          default : yes
  3166.  
  3167.               See above.
  3168.  
  3169.   CURSOR      yes/no                          default : yes
  3170.  
  3171.               CURSOR  NO disables the "accelerated cursor emulation on
  3172.               non strictly compatible computers.
  3173.  
  3174.   DEFINE   code   @macname    ** Assigns a macro to key
  3175.            code   $proname    ** Assigns a profile to a key
  3176.            code   &commname   ** Assigns a command to a key
  3177.            code   chaîne      ** Assigns a string to a key
  3178.            code   "chaîne"    ** Use quotes if you want to imbed
  3179.            code   'chaîne'    ** leading or trailing blanks
  3180.            code   fnccode     ** Assigns a function to a key.
  3181.            code               ** Restore the default function
  3182.  
  3183.   DEFINE  without parameter has no effect in a profile
  3184.  
  3185.  
  3186.   COLOR DEFINITIONS =  SCREEN_AREA background foreground
  3187.  
  3188.   C_HELP            f a         ** Help line
  3189.   C_BLOCK           f a         ** Marked blocks
  3190.   C_BORDER          f           ** Border (CGA/EGA/VGA only)
  3191.                                 ** be careful with multi-standards
  3192.                                 ** adapters
  3193.   C_COMMAND         f a         ** Command line
  3194.   C_CURSOR          f a         ** Virtual cursor
  3195.   C_MESSAGES        f a         ** Messages
  3196.   C_STATUS1         f a         ** Status line (fixed part)
  3197.   C_STATUS2         f a         ** Status line (variables)
  3198.   C_TEXT            f a         ** Text
  3199.  
  3200.                                 E!.DOC page 50
  3201.                                     E!.DOC
  3202.  
  3203.  
  3204.  
  3205.   0 black       4 red           8  gray              12 light red
  3206.   1 blue        5 magenta       9  light blue        13 light magenta
  3207.   2 green       6 brown         10 light green       14 yellow
  3208.   3 cyan        7 light grey    11 light cyan        15 white
  3209.  
  3210.   CURSOR SHAPE DEFINITION =  SCREENTYPE  topline bottomline
  3211.  
  3212.   CURSORMONO     tl bl       ** Cursor shape in overwrite mode
  3213.   CURSORCOL      tl bl
  3214.   CURSORMONOINS  tl bl       ** Cursor shape in insert mode
  3215.   CURSORCOLINS   tl bl
  3216.  
  3217.               This  command  controls  the cursor shape. Use it if you
  3218.               don't  like  the default values or if you have a problem
  3219.               with  your display adapter. Some EGA / VGA adapters have
  3220.               a VERY bad cursor emulation.
  3221.  
  3222.               tl  is  the  top  scan  line  and  bl is the bottom scan
  3223.               line.  The  following  diagram  shows  you how tl and bl
  3224.               work.  Allowed  ranges  for  tl and bl are 0-7 for color
  3225.               adapters and 0-13 for monochrome adapters.
  3226.  
  3227.  
  3228.     ┌────────────┐  top of character matrix (line 0)
  3229.     │            │
  3230.     │            │
  3231.     ├────────────┤  tl
  3232.     │▒▒▒▒▒▒▒▒▒▒▒▒│
  3233.     │▒▒▒▒▒▒▒▒▒▒▒▒│  visible part of cursor
  3234.     │▒▒▒▒▒▒▒▒▒▒▒▒│
  3235.     └────────────┘  bl - bottom of character matrix (ligne 7 ou 13)
  3236.  
  3237.  
  3238.  
  3239.  
  3240.  
  3241.  
  3242.  
  3243.  
  3244.  
  3245.  
  3246.  
  3247.  
  3248.  
  3249.  
  3250.  
  3251.  
  3252.  
  3253.  
  3254.  
  3255.  
  3256.  
  3257.  
  3258.  
  3259.  
  3260.  
  3261.  
  3262.  
  3263.  
  3264.                                 E!.DOC page 51
  3265.                                     E!.DOC
  3266.  
  3267. N. PROGRAMMING SUPPORT
  3268. ______________________
  3269.  
  3270.            To be a complete programming tool, E! has to offer some services
  3271.       in  the program compilation area. Well, it is the case. E! allows you
  3272.       to  compile  a  program source file and to retrieve errors within the
  3273.       source  file like any integrated compiler environment. This will work
  3274.       with  any compiler issuing standard error messages. If several errors
  3275.       are  detected, E! will build an internal list of errors and allow you
  3276.       to move from an error to the other in your source file.
  3277.  
  3278.            Let's examine the whole process of compiling a file under E!:
  3279.  
  3280.  
  3281.            1/ For any compiler you plan to use insert the following line in
  3282.       your active profile:
  3283.  
  3284.            COMPILE    ext    compiler command line
  3285.  
  3286.            example:
  3287.  
  3288.            COMPILE    asm    masm $$.asm;
  3289.  
  3290.            ($$ replaces the current filename without any extension)
  3291.  
  3292.  
  3293.            2/  Load  this  profile  to  activate  the command (if it is not
  3294.       already active).
  3295.  
  3296.            3/ Edit your source file and enter COMPILE without any parameter
  3297.       on the E! command line.
  3298.  
  3299.       THAT'S ALL.
  3300.  
  3301.            E!  will  search  an  internal  table  if  there is any compiler
  3302.       defined  for  the  current  file  extension.  For example, if you are
  3303.       editing  a  file  named  myprog.asm, E! will search this table for an
  3304.       "asm" entry.
  3305.  
  3306.            If  one  is  found,  E!  will  replace  the  $$ sequence in your
  3307.       compiler  command  line with the name of the current file WITHOUT any
  3308.       extension.  Before  calling  DOS  and  the compiler, E! will redirect
  3309.       all  DOS  output  to  one  file  named  "filename.ERR"  (to  be  more
  3310.       precise,   E!   redirects  stderr  and  stdout).  When  the  compiler
  3311.       returns  to  DOS, E! will analyze the .ERR files and will find out if
  3312.       there  are  errors  to  be  searched in the source file. It will then
  3313.       display  the  first  error in the list highlighting the corresponding
  3314.       line  in  your  text  and displaying the corresponding compiler error
  3315.       message on the E! help line.
  3316.  
  3317.            You  can  move between errors (if there are more than one) using
  3318.       Alt  F8 (move forward) and Alt F9 (move backward). The compiler error
  3319.       message will be automatically updated and the corresponding line from
  3320.       the  source  file  will  be highlighted. The error list remains valid
  3321.       until you run another compilation.
  3322.  
  3323.            If  E!  is  not  able  to  build  an  error  list  (non standard
  3324.       compiler  or  successful  compilation)  it  will  immediatly edit the
  3325.       generated .ERR file. So you can see the result yourself.
  3326.  
  3327.  
  3328.                                 E!.DOC page 52
  3329.                                     E!.DOC
  3330.  
  3331.            An error list is maintained for each file.
  3332.  
  3333.            Although  this  may  lead to memory space problems, this process
  3334.       will  also  work with the MAKE utility. Actually, this will work with
  3335.       any program you wish even if it is not a compiler.
  3336.  
  3337.            The profile command for a MAKE process will be very simple:
  3338.  
  3339.            Compile  C  MAKE $$
  3340.  
  3341.            will be generally sufficient.
  3342.  
  3343.  
  3344.            Although  this  a  powerful  function,  E!  will never replace a
  3345.       dedicated programming environment but it may be convenient to use the
  3346.       E!  programming  support to verify if a source file is free of syntax
  3347.       errors or to quickly compile short programs without loading the whole
  3348.       machinery of a more sophisticated environment.
  3349.  
  3350.            E! recognizes following error messages formats :
  3351.  
  3352.            error filename row: message
  3353.            warning filename row: message
  3354.            filename row column: message
  3355.            filename (row,column): message
  3356.            filename (row): message
  3357.            filename : row : message
  3358.            "filename", row column: message
  3359.  
  3360.            These formats are used with most compilers.
  3361.  
  3362.            To  modify  compile  options  you  will  have to edit the active
  3363.       profile and reload it. See PROFILE's.
  3364.  
  3365.            E!   has  been  successfully  tested  with  following  compilers
  3366.       (trademarks):
  3367.  
  3368.            Microsoft C 5.1
  3369.            Turbo C 1.5
  3370.            Turbo Pascal 4.0
  3371.            Microsoft Assembler 5.0
  3372.  
  3373.            Other compilers have been tested by E! users.
  3374.  
  3375.  
  3376.  
  3377.  
  3378.  
  3379.  
  3380.  
  3381.  
  3382.  
  3383.  
  3384.  
  3385.  
  3386.  
  3387.  
  3388.  
  3389.  
  3390.  
  3391.  
  3392.                                 E!.DOC page 53
  3393.                                     E!.DOC
  3394.  
  3395. O. E! IS A SHAREWARE
  3396. ____________________
  3397.  
  3398.            First,  I  would like to apologize for my poor english. I did my
  3399.       best  to  translate  this documentation properly but you will have to
  3400.       judge  the  result  yourself.  Any help to enhance this documentation
  3401.       file is welcome.
  3402.  
  3403.            E!  is  a  user  supported  software.  It  is  distributed  as a
  3404.       shareware.  You  may  freely copy it and distribute it as long as you
  3405.       do  not  charge  for  these  copies. However, an exception is granted
  3406.       to  recognized  user's groups which are hereby authorized to charge a
  3407.       small amount for postage, media, handling,  etc...
  3408.  
  3409.            If  you  suppose  E! development was a long (but exciting) task,
  3410.       you're  right.  I wrote the first line of code in January 87. At this
  3411.       time  there  was  still  10999  to  write  and  test  and rewrite and
  3412.       retest...  E!  has  been  beta tested by professional programmers. So
  3413.       you  can  assume  it is a safe program. Actually, E! has been written
  3414.       using E! which is the better test I could do.
  3415.  
  3416.            If  you  find E! easy to use, quick and efficient a registration
  3417.       of  $50  would be greatly appreciated. This registration includes all
  3418.       new  versions  or  updates  for one year. Please fill in registration
  3419.       form and send registration fee to :
  3420.  
  3421.               Guy Lachance
  3422.               215-C Mulberry,
  3423.               El Paso, Texas 79932
  3424.               U.S.A.
  3425.  
  3426.            Suggestions and "bug reports" have to be sent to:
  3427.  
  3428.            ON COMPUSERVE :
  3429.  
  3430.               72561,3532 or         ( Patrick Philippot )
  3431.               71460,3407            ( Guy Lachance      )
  3432.  
  3433.               or directly to the above address.
  3434.  
  3435.            Registered users will always receive a quick and detailed answer
  3436.       or an updated version if necessary.
  3437.  
  3438.            Please specify configuration and version number.
  3439.  
  3440.            If  you  are  interested  in  distributing  E!  as  a commercial
  3441.       software, please contact us.
  3442.  
  3443.  
  3444.  
  3445.  
  3446. Patrick PHILIPPOT - 10/5/1988
  3447.  
  3448.  
  3449.  
  3450. Documentation revised by
  3451.  
  3452. Guy LACHANCE      - 01/10/1989
  3453.  
  3454.  
  3455.  
  3456.                                 E!.DOC page 54
  3457.                                     E!.DOC
  3458.  
  3459. APPENDIX 1 : ERROR MESSAGES
  3460. ___________________________
  3461.  
  3462.            "Non neutral" error messages don't stop execution of the current
  3463.       macro.  These  messages  are  actually  not  error  messages but only
  3464.       indicators of function completion. See MACROS.
  3465.  
  3466. 01     Not enough memory or too many lines
  3467. 02     Not text file(s) (likely)
  3468. 03     Input / Output error...
  3469. 04     No alternate window
  3470. 05     Can't create a window here
  3471. 06     ENTER to insert a line or  to return       * neutral message *
  3472. 07     Block already marked
  3473. 08     No marked block
  3474. 09     Source and destination conflict
  3475. 10     Block too big
  3476. 11     Control characters allowed                  * neutral message *
  3477. 12     Control characters discarded                * neutral message *
  3478. 13     Function interrupted
  3479. 14     Bookmark dropped                            * neutral message *
  3480. 15     Bookmark removed                            * neutral message *
  3481. 16     Recording macro - ^R to end
  3482. 17     Macro recorded - ^P to replay
  3483. 18     Macro cancelled
  3484. 19     Error during justification
  3485. 20     Non existing or locked file
  3486. 21     Error - Margins unchanged
  3487. 22     Not a valid line
  3488. 23     Search terminated
  3489. 24     Syntax error
  3490. 25     Please type one character and 3 digits
  3491. 26     Code error - key not assigned
  3492. 27     Character code error
  3493. 28     Printer not ready
  3494. 29     Unknown draw mode
  3495. 30     Not enough memory. Sort cancelled
  3496. 31     No active macro
  3497. 32     Error - Scroll unchanged
  3498. 33     DOS PRINT program not installed
  3499. 34     Spooler error
  3500. 35     New file                                    * neutral message *
  3501. 36     Textmark dropped                            * neutral message *
  3502. 37     Textmark(s) removed                         * neutral message *
  3503. 38     File too big
  3504. 39     New macro loaded
  3505. 40     Undo buffer is empty
  3506. 41     Error list is empty
  3507.  
  3508.  
  3509.  
  3510.  
  3511.  
  3512.  
  3513.  
  3514.  
  3515.  
  3516.  
  3517.  
  3518.  
  3519.  
  3520.                                 E!.DOC page 55
  3521.                                     E!.DOC
  3522.  
  3523. APPENDIX 2 : KEY CODES AND FUNCTION CODES
  3524. __________________________________________
  3525.  
  3526. (h = top of keyboard - b = numeric pad)
  3527.  
  3528. CtrlA : 001  Move text of current line to cursor
  3529. CtrlB : 002  Upcase current word in Pascal style (i.e. upcase_it becomes Upcase
  3530. CtrlC : 003  Clear current line
  3531. CtrlD : 004  Repeat specified character
  3532. CtrlE : 005  Delete end of line from cursor
  3533. CtrlF : 006  Toggle wordwrap mode
  3534. CtrlG : 007  Toggle 35/43/50 lines mode
  3535. CtrlH : 008  Delete left character
  3536. CtrlI : 009  Move cursor to next tab position
  3537. CtrlJ : 010  Toggle justify mode
  3538. CtrlK : 011
  3539. CtrlL : 012  If current word is a file name, file is edited
  3540. CtrlM : 013  Insert a new line
  3541. CtrlN : 014  Insert file name at cursor
  3542. CtrlO : 015
  3543. CtrlP : 016  Play active macro
  3544. CtrlQ : 017  Restore previous macro
  3545. CtrlR : 018  Begin / End macro record
  3546. CtrlS : 019  Repeat last search
  3547. CtrlT : 020  Insert system date and time at cursor
  3548. CtrlU : 021  Cancel macro record
  3549. CtrlV : 022  Initialize search variables
  3550. CtrlW : 023  Delete current word
  3551. CtrlX : 024  If current line is a DOS command, it is executed
  3552. CtrlZ : 026  If current line is a valid DOS directory, it is edited
  3553.  
  3554. CtrlF1: 350  Upcase current word
  3555. CtrlF2: 351  Lowcase current word
  3556. CtrlF3: 352  Upcase current block
  3557. CtrlF4: 353  Lowcase current block
  3558. CtrlF5: 354  Center text in block
  3559. CtrlF6: 355  Reformat current paragraph
  3560. CtrlF7: 356  Reformat current block
  3561. CtrlF8: 357
  3562. CtrlF9: 358
  3563. CtrlF0: 359
  3564.  
  3565. Ctrl 6: 030
  3566. Ctrl -: 031
  3567. ^ Bsp : 127  Delete current line
  3568.  
  3569. AltA  : 286  Adjust block position
  3570. AltB  : 304  Mark block
  3571. AltC  : 302  Copy block at cursor position
  3572. AltD  : 288  Delete block
  3573. AltE  : 274  Move cursor to end of block
  3574. AltF  : 289  Fill block with specified character
  3575. AltG  : 290  Sort marked block (the entire lines are moved - key is block delim
  3576. AltH  : 291  Draw a box around block
  3577. AltI  : 279  Remove all tab positions
  3578. AltJ  : 292  Join current line and next line
  3579. AltK  : 293  Drop bookmark / Return to bookmark
  3580. AltL  : 294  Mark a line or a group of lines
  3581. AltM  : 306  Move block to cursor
  3582. AltN  : 305  Add values within block and display result at cursor
  3583.  
  3584.                                 E!.DOC page 56
  3585.                                     E!.DOC
  3586.  
  3587. AltO  : 280  Overlay block at cursor position
  3588. AltP  : 281  Move cursor to next paragraph
  3589. AltQ  : 272  Insert "continue-mark" in macro being recorded
  3590. AltR  : 275  Remove a tab position
  3591. AltS  : 287  Split line at cursor position
  3592. AltT  : 276  Create a tab position
  3593. AltU  : 278  Unmark block
  3594. AltV  : 303  Remove trailing blanks
  3595. AltW  : 273  Mark current word
  3596. AltX  : 301  Allow entry of control characters
  3597. AltY  : 277  Move cursor to beginning of block
  3598. AltZ  : 300  Mark a sentence
  3599.  
  3600. Alt1  : 376  Drop first textmark
  3601. Alt2  : 377  Drop second textmark
  3602. Alt3  : 378  Drop third textmark
  3603. Alt4  : 379  Remove all textmarks
  3604. Alt5  : 380  Refresh current file from disk
  3605. Alt6  : 381  Search paired braces
  3606. Alt7  : 382  Insert paired braces
  3607. Alt8  : 383  Restore last removed lines
  3608. Alt9  : 384  Insert lines automatically captured under DOS
  3609. Alt0  : 385  Search current word
  3610. Alt)- : 386  Insert blanks columns before block
  3611. Alt=  : 387  Insert blanks without moving cursor
  3612.  
  3613. F1    : 315  Load help file
  3614. F2    : 316  Save current file
  3615. F3    : 317  Leave current file without saving
  3616. F4    : 318  Save and leave current file
  3617. F5    : 319  Create / Remove a window
  3618. F6    : 320  Toggle draw mode
  3619. F7    : 321  Rename current file
  3620. F8    : 322  Edit new file(s)
  3621. F9    : 323  Restore (undo) current line
  3622. F0    : 324  Go to next file
  3623.  
  3624. ShftF1: 340  Scroll left one character at a time
  3625. ShftF2: 341  Scroll right one character at a time
  3626. ShftF3: 342  Scroll down one line at a time
  3627. ShftF4: 343  Scroll up one line at a time
  3628. ShftF5: 344  Center current line in window
  3629. ShftF6: 345  Raise current line to top of window
  3630. ShftF7: 346
  3631. ShftF8: 347
  3632. ShftF9: 348
  3633. ShftF0: 349
  3634.  
  3635. Alt F1: 360  Display information about specified key
  3636. Alt F2: 361
  3637. Alt F3: 362  Scroll left (number of columns specified with SCROLL command)
  3638. Alt F4: 363  Scroll right (number of columns specified with SCROLL command)
  3639. Alt F5: 364  Change active window
  3640. Alt F6: 365
  3641. Alt F7: 366
  3642. Alt F8: 367  Next compilation error
  3643. Alt F9: 368  Previous compilation error
  3644. Alt F0: 369  Go to previous file
  3645.  
  3646. Bsp   : 008  Delete left character
  3647.  
  3648.                                 E!.DOC page 57
  3649.                                     E!.DOC
  3650.  
  3651. Enter : 013  Insert a new line
  3652. Esc   : 027  Toggle between CommandMode and EditMode
  3653. Tab   : 009  Move cursor to next tab position
  3654. Sh Tab: 271  Move cursor to previous tab position
  3655. Home  : 327  Move to beginning of current or previous line
  3656. Up    : 328  Move to previous line
  3657. PgUp  : 329  Scroll one screen up
  3658. Left  : 331  Move cursor left
  3659. Right : 333  Move cursor right
  3660. End   : 335  Move to end of current or next line
  3661. Down  : 336  Move to next line
  3662. PgDn  : 337  Scroll one screen down
  3663. Insert: 338  Toggle insert mode
  3664. Del   : 339  Delete character at cursor
  3665. ^ Left: 371  Go to previous word
  3666. ^Right: 372  Go to next word
  3667. ^ End : 373  Move cursor to end of text
  3668. ^ PgDn: 374  Move cursor to end of screen
  3669. ^ Home: 375  Move cursor to beginning of text
  3670. ^ PgUp: 388  Move cursor to top of screen
  3671.  
  3672.  
  3673.  
  3674.  
  3675. IBM ENHANCED KEYBOARD ONLY (no function assigned)
  3676. _________________________________________________
  3677.  
  3678. F11    :389     Alt Esc:257    AltEnd:415   ^ Ins :402
  3679. F12    :390     Alt *  :299    Alt Dn:416   ^ Del :403
  3680. ^F11   :393     Alt - h:381    AltIns:418   ^ Tab :404
  3681. ^F12   :394     Alt - b:330    AltDel:419
  3682. ShF11  :391     5(bloc):332    Alt / :420
  3683. ShF12  :392     Alt +  :334    AltEnt:422
  3684. Alt F11:395     Alt Hom:407    ^ Up  :397
  3685. Alt F12:396     Alt Up :408    ^ Dn  :401
  3686.                 Alt PgU:409    Ctrl-b:398
  3687.                 Alt Lef:411    Ctrl5b:399
  3688.                 Alt Rig:413    Ctrl+b:400
  3689.  
  3690.  
  3691.  
  3692.  
  3693.  
  3694.  
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  
  3701.  
  3702.  
  3703.  
  3704.  
  3705.  
  3706.  
  3707.  
  3708.  
  3709.  
  3710.  
  3711.  
  3712.                                 E!.DOC page 58
  3713.                                     E!.DOC
  3714.  
  3715. APPENDIX 3 :KEYCODES NOT USED BY E!
  3716. ___________________________________
  3717.  
  3718.  
  3719.        Ctrl O     Alt F6     Ctrl F8     Shift F7     Ctrl 2
  3720.        Ctrl Y     Alt F7     Ctrl F9     Shift F8     Ctrl 6
  3721.                              Ctrl F10    Shift F9
  3722.                                          Shift F10
  3723.  
  3724.  
  3725.  
  3726.        and all keystrokes from the enhanced keyboard.
  3727.  
  3728.            If  you  find  some  E!  functions not useful, you may use their
  3729.       corresponding keystrokes to implement some specific command or macro,
  3730.       etc...
  3731.  
  3732.  
  3733.  
  3734.  
  3735.  
  3736.  
  3737.  
  3738.  
  3739.  
  3740.  
  3741.  
  3742.  
  3743.  
  3744.  
  3745.  
  3746.  
  3747.  
  3748.  
  3749.  
  3750.  
  3751.  
  3752.  
  3753.  
  3754.  
  3755.  
  3756.  
  3757.  
  3758.  
  3759.  
  3760.  
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.  
  3767.  
  3768.  
  3769.  
  3770.  
  3771.  
  3772.  
  3773.  
  3774.  
  3775.  
  3776.                                 E!.DOC page 59